【发布时间】:2016-05-06 02:59:48
【问题描述】:
我想在我的 Tableview ScrollBar 上添加一个监听器,但我在 JavaFX 中没有找到这个监听器。
这是我的 .FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.cell.*?>
<?import javafx.collections.*?>
<?import fxmltableview.*?>
<BorderPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.40"
onContextMenuRequested="#showContextMenu">
<center>
<TableView fx:id="table" prefHeight="200.0" prefWidth="300.0"
BorderPane.alignment="CENTER" >
<columns>
<TableColumn text="Name">
</TableColumn>
<TableColumn text="Latitude">
</TableColumn>
<TableColumn text="Longitude">
</TableColumn>
<TableColumn text="Label">
</TableColumn>
<TableColumn text="Label_two">
</TableColumn>
<TableColumn text="Code">
</TableColumn>
<TableColumn text="Code_two">
</TableColumn>
</columns>
</TableView>
</center>
</BorderPane>
当我在 TableView 中添加项目时,滚动条会自动出现,我想添加一个侦听器以在我使用滚动条滚动时执行特定操作。
我找到的唯一听众:
table.setOnScroll(...
table.setOnScrollTo(...
... 仅当我使用鼠标滚轮滚动时才起作用或不起作用。
我该如何解决这个问题?
编辑:我捕获了 TableView 中的所有事件,以查看当我使用滚动条滚动时必须听哪个事件,显然它是传播的 MouseDragged 事件。
【问题讨论】:
-
可能重复的外观here
-
这篇文章中的解决方案仅在我使用滚轮滚动时才有效,而不是在我使用自动 TableView ScrollBar 滚动时有效。
标签: java user-interface events javafx tableview