2017-01-09 2 views
0

私はtreeviewを作った。私はこのようなツリービューを作りたい。javafxのツリービューで複数のリスナーを追加するには? (ホバー、フォーカス)

  1. マウスを項目に入力すると、その項目は画像を変更する必要があります。
  2. 私はアイテムをマウスでクリックすると、そのアイテムはイメージをチャネリングする必要があります。

    私は方法getSelectionMode()を知っています...しかし、私はホバーイベントを知らない。 私を助けてください。

答えて

0

あなたが正しく理解しているかどうかわかりません。

しかし、すぐにあなたがイメージselectedItemPropertyリスナーを使用クリックすると、あなたのイメージを変更するには:あなたはできるだけ早くあなたが行にhoverPropertyを使用することができます項目の上にマウスを置くとそれをしたい場合は

treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { 

    @Override 
    public void changed(ObservableValue observable, Object oldValue, 
      Object newValue) { 

     TreeItem<String> selectedItem = (TreeItem<String>) newValue; 
     // do something 
    } 

}); 

を:

treeView.setRowFactory(tableView -> { 
    final TableRow<Person> row = new TableRow<>(); 

    row.hoverProperty().addListener((observable) -> { 
     final YourItem yourItem = row.getItem(); 

     if (yourItem.isHover()) { 
      // do something 
     } else { 
      // do something 
     } 
    }); 

    return row; 
}); 

(このコードは答えhereからである)

私はmissread、そのツリーについて表示します。 onMouseEnteredを試してみてください。セルファクトリー内で類似している:

+0

ありがとうございました!しかし、そのsetRowFactoryメソッドは私のtreeviewで見つけることができません.. – rlawlstjd007

+0

私の悪い、あなたはtreeviewを使用していると私はそのツリーテーブルのビューについて考えた。私の編集を参照してください。 – NDY

+0

ああ、それは仕事です!ありがとうございました !!! – rlawlstjd007

関連する問題