【发布时间】:2016-02-22 19:20:09
【问题描述】:
我在 TabPane 的其中一个选项卡中有一个 TableView。我想在单元格 user id 上添加一个点击事件,这样当用户点击特定的用户 id 时,我会打开一个包含用户特定详细信息的新选项卡。如何为列中的所有单元格添加事件监听器?
<TableView fx:controller="tableViewController"
fx:id="tableViewTable" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
</columnResizePolicy>
<columns>
<TableColumn text="First Name">
<cellValueFactory>
<PropertyValueFactory property="firstName" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Last Name">
<cellValueFactory>
<PropertyValueFactory property="lastName" />
</cellValueFactory>
</TableColumn>
<TableColumn text="User Id">
<cellValueFactory>
<PropertyValueFactory property="userId" />
</cellValueFactory>
</TableColumn>
</columns>
</TableView>
这个博客http://java-buddy.blogspot.com/2013/05/detect-mouse-click-on-javafx-tableview.html 讨论了以编程方式捕获点击事件,在使用 FXML 时我该如何做类似的事情?
【问题讨论】:
-
您不能在 FXML 中真正做到这一点;您只能在单元格工厂中获取表格单元格。因此,您必须在控制器中执行此操作。 (FXML 几乎只用于布局。)
标签: mouseevent javafx-8 fxml