【发布时间】:2016-07-20 07:30:10
【问题描述】:
Java FX 中的 TableColumn 是否有任何鼠标单击事件? 我可以在 tableView 中看到它,但在 TableColumn 中看不到。请提出建议。
【问题讨论】:
-
您要检测鼠标单击 TableCells 还是标题?
-
我想鼠标点击列标题上的事件。
标签: javafx mouseclick-event tablecolumn
Java FX 中的 TableColumn 是否有任何鼠标单击事件? 我可以在 tableView 中看到它,但在 TableColumn 中看不到。请提出建议。
【问题讨论】:
标签: javafx mouseclick-event tablecolumn
没有特别好的方法可以做到这一点。最好的选择可能不是在列上设置文本,而是将图形设置为包含所需文本的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 的文本,该文本已不再存在。
【讨论】: