JavaFX ListView 滚动显示

标签 java listview javafx scrollbar

我在徘徊,是否有一个属性,我可以附加一个监听器,代表“当 ListView 开始显示滚动条时”的操作?

问题是,我有一个 ListView 的输出,并且在某个时刻 ListView 的滚动条会触发。我想捕获该事件并滚动到底部,以便 ListView 对象的下一个添加项将自动滚动到底部。

我确实知道我可以使用监听器来更改项目,但我想保留当我决定向上滚动时的行为,并且在添加项目后它不会滚动回最后一个位置。

最佳答案

试试这个:

for (Node node : listView.lookupAll(".scroll-bar")) {
    if (node instanceof ScrollBar) {
        ScrollBar scrollBar = (ScrollBar) node;
        scrollBar.visibleProperty().addListener((observable, oldValue, newValue) -> {
            System.out.println(String.format("%s ScrollBar Visible Property Changed From: %s To: %s", scrollBar.getOrientation(), oldValue, newValue));
        });
    }
}

输出:

VERTICAL ScrollBar Visible Property Changed From: false To: true

注意:此代码应在您设置 ListView 中的项目后添加,以避免 NullPointerException

关于JavaFX ListView 滚动显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49425888/

相关文章:

java - 增强的 for loop-SimpleDotCom 的一些问题

java - jUnit 中 void 方法和线程的单元测试

Android:JSONArray & JSONObject 到 ListView 奇怪的读数

excel - 将 JavaFX TableView 数据导出到 Excel (XLS)

Javafx:通过pane.getChildren().get(index)恢复 Pane 中包含的标签文本

java - Persistence.xml 编辑器

java - 尝试用 Java 获取 XML 节点

android - 上下文菜单 onItemClick (ListView)

android - 我在 ListView 的 getView() 中将 textview 的 VISIBILITY 设置为 VISIBLE - 它对于下一行也保持可见。怎么解决这个问题呢?

java - 获取在控件的类定义中添加自定义控件的场景的大小