JavaFX中是否存在TableColumn的鼠标单击事件

时间:2016-07-20 07:30:11

标签: javafx mouseclick-event tablecolumn

Java FX中的TableColumn是否有鼠标点击事件? 我可以在tableView中看到它,但不能在TableColumn中看到它。请建议。

1 个答案:

答案 0 :(得分:-1)

没有特别好的方法可以做到这一点。可能最好的选择不是在列上设置文本,而是将图形设置为包含所需文本的Label。然后使用Label注册鼠标监听器。

standard Oracle tutorial为例,您可以这样做:

TableColumn<Person, String> firstNameColumn = new TableColumn<>();
Label firstNameColHeader = new Label("First Name");
firstNameColHeader.setOnMouseClicked(e -> System.out.println("Click on header"));
firstNameColumn.setGraphic(firstNameColHeader);

请注意,如果您使用此选项,则会导致table menu button中断,因为菜单中的选项会使用TableColumn中不再存在的文字。