大家好?我有这个动态创建的JavaFX tableview。当双击表格视图中的一个单元格时,我需要获取该单元格所在的列的名称以及该单元格所在行的第一个单元格的值。解决这个问题。请给我看一些示例代码。
好,首先让我们假设您的TableView已附加到模型上:
public TableView<MyModel> myTable;
其中MyModel类似于:
public class MyModel {
private Integer id;
private String name;
// ... etc.
}
因此,MyModel是常见的POJO。您可以将TableView的列设置为:
TableColumn<MyModel, Integer> id = new TableColumn<>("ID");
id.setCellValueFactory(new PropertyValueFactory<>("id"));
TableColumn<MyModel, String> name = new TableColumn<>("Name");
name.setCellValueFactory(new PropertyValueFactory<>("name"));
然后将列添加到表中:
myTable.getColumns().addAll(id, name);
现在,让我们听每一行的click事件:
myTable.setOnMouseClicked(event -> {
MyModel myModel = myTable.getSelectionModel().getSelectedItem();
// now you can do whatever you want with the myModel variable.
System.out.println(myModel.getName());
}
您还可以使用rowFactory收听每一行,但这应该可以完成工作。