2013-06-30 70 views
23

JavaFXのTableViewから選択した項目を取得するにはどうすればよいですか?JavaFX TableViewから選択項目を取得する

私は現在

ObservableList selectedItems = taview.getSelectionModel().getSelectedItems(); 

を使用していますが、それは私の選択モデルで項目選択された1つを返しません。

答えて

59

ここで、Personという名前のデータモデルクラスがあるとします。この方法:

Person person = taview.getSelectionModel().getSelectedItem(); 
System.out.println(person.getName());  

TableViewは鋳造を避けるために、型引数としてPersonを取る必要があることに注意:

@FXML 
private TableView<Person> taview; 

または

TableView<Person> taview = new TableView<>(); 

あなたの行が選択されたとき、あなたは1を返します。 Personインスタンス。その後、そのインスタンスであなたが望むことをしてください。

+0

**ありがとうございます♪ – user2536158

+0

大歓迎です! :) –

+0

すばやく簡単です。 – rainer

6
​​

このコードを使用すると、JAVAFX TABLEVIEW Cellから選択した値を取得できます。

おかげで...ここ

+0

このコードは私のために働いた。しかし、私は別の行を選択するときにのみ動作します。同じ行が選択されていてもテーブルセルが選択されるたびにこのコードを実行するにはどうすればいいですか? – viper

+0

ポップアップメニューのようにこのリスナー内でマウス座標を取得する方法はありますか? – leobelizquierdo

2

@pranishres

は@Java男のコードに触発されたセル選択変更リスナー(行が変化していない場合でも)、のための私の試みです:

tableView.getSelectionModel().setCellSelectionEnabled(true); 
ObservableList selectedCells = tableView.getSelectionModel().getSelectedCells(); 

selectedCells.addListener(new ListChangeListener() { 
    @Override 
    public void onChanged(Change c) { 
     TablePosition tablePosition = (TablePosition) selectedCells.get(0); 
     Object val = tablePosition.getTableColumn().getCellData(tablePosition.getRow()); 
     System.out.println("Selected Value" + val); 
    } 
}); 
+0

私のために働いた;)ありがとう –

-1
Employeeという名前のBeanクラスがある場合は

です。

Employee employee= tblView.getSelectionModel().getSelectedItem(); 
txtEmployeeName.setText(employee.getName()); 
+0

なぜ受け入れられた答えを繰り返す? – kleopatra

関連する問題