javafx - 现在如何在 JavaFX 10 中从 TableView 获取 TableHeaderRow?
问题描述
我想在表格视图中自定义表格标题。这个例子在 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 的正常工作代码。
解决方案
skin.getTableHeaderRow()
是protected access
,但我在某处看到了这个:
TableHeaderRow headerRow = (TableHeaderRow) tableView.lookup("TableHeaderRow");
推荐阅读
- c - 多位输入的 C 中后缀转换的中缀
- python - Python 中的约翰逊矩分布
- python - 在按下左括号上添加右括号
- visual-studio-code - 保存文件后光标在空行时跳转到第一列
- javascript - 文本中包含超过 1 个大写字符且带有正则表达式的所有单词
- python - Python SQL 脚本 - 如何发送有错误的电子邮件
- racket - 如何在 Racket 中计算浮点模数?[flmod]
- javascript - 在 AmCharts 中切换到 JSON 数据不起作用
- java - lang.NoClassDefFoundError:无法初始化类 jtermios.windows.WinAPI
- next.js - 没有默认登录页面的下一个 Auth 电子邮件凭据