我想在表格视图中自定义表格标题。这个例子在 javaFx8 中运行良好。
TableViewSkin<?> skin = ( TableViewSkin<?> )getSkin();
TableHeaderRow tableHeader = skin.getTableHeaderRow();
NestedTableColumnHeader rootHeader = tableHeader.getRootHeader();
tableHeader.setReordering( false );
现在,我将 jre 更改为 Java 10,并进行了所有拼图更改,这样所有内部 api 都无法再访问了。所以 getTableHeaderRow() / getRootHeader() / setReordering() 方法现在是私有的,所以访问它们的唯一方法是通过反射,我不想使用,因为我不是他们的朋友。
那么有没有办法在 JavaFx10 中自定义表头?
在我看来,Oracle 很容易做出这些更改,但它们并没有为我们的开发人员提供使用新 API 解决此类问题的解决方案,它们只是将所有内容设为私有或受保护。
我们正在做很多自定义控件并使用很多“内部”api,现在我们付出了巨大的努力来运行从 Java 8 到 Java 10 的正常工作代码。