2013-06-30 157 views

回答

59

好吧,假设您有一个名为Person的数据模型类。通过这种方式:

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

注意TableView必须采取Person作为一个类型参数,以避免铸造:

@FXML 
private TableView<Person> taview; 

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

当选择你行,你会回来的Person实例。然后做那个你想要的那个实例。

+0

** thanku **这么多 – user2536158

+0

不客气! :) –

+0

快速简单.. – rainer

6
​​

使用此代码,您可以从JAVAFX TABLEVIEW单元中获取选定的值。

谢谢..

+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