如何防止TableView在javaFX 8中进行TableColumn重新排序? [英] How to prevent TableView from doing TableColumn re-order in javaFX 8?
本文介绍了如何防止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:
- 获取表头.可以按照以下说明进行操作: https://stackoverflow.com/a/12465155
- 将更改事件侦听器添加到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屋!
查看全文