如何防止TableView在javaFX 8中进行TableColumn重新排序? [英] How to prevent TableView from doing TableColumn re-order in javaFX 8?

查看:160
本文介绍了如何防止TableView在javaFX 8中进行TableColumn重新排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我阅读了此 https://bugs.openjdk.java.net/browse/JDK -8102128 ,但是我没有在JavaFX 8的Api中找到任何东西.有什么方法可以阻止TableView中的重新排序?

I read this https://bugs.openjdk.java.net/browse/JDK-8102128 but I haven't found something in the Api of JavaFX 8.There isn't any way of prevent reordering in TableView?

推荐答案

花了半天时间来解决问题.也许我的调查对其他人可能有用. 可以使用一些技巧来禁用列重新排序.步骤如下:

Spent half of a day trying to solve the problem. Maybe my investigation can be useful for someone else. It's possible to disable column reordering using some hacks. And here're the steps:

  1. 获取表头.可以按照以下说明进行操作: https://stackoverflow.com/a/12465155
  2. 将更改事件侦听器添加到reorderingProperty中,从而将重新排序设置为false.

完整代码在这里:

tableView.widthProperty().addListener(new ChangeListener<Number>()
{
    @Override
    public void changed(ObservableValue<? extends Number> source, Number oldWidth, Number newWidth)
    {
        TableHeaderRow header = (TableHeaderRow) tableView.lookup("TableHeaderRow");
        header.reorderingProperty().addListener(new ChangeListener<Boolean>() {
            @Override
            public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
                header.setReordering(false);
            }
        });
    }
});

我不确定该解决方案的副作用,但是快速测试表明该解决方案效果很好.

I'm not sure about side effects of this solution, but quick tests show that solution works well.

这篇关于如何防止TableView在javaFX 8中进行TableColumn重新排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆