Как получить TableHeaderRow из TableView в настоящее время в JavaFX 10?
Я хочу настроить заголовок таблицы в виде таблицы. этот пример отлично работает в 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.
0 ответов
skin.getTableHeaderRow()
является protected access
, но я где-то видел это:
TableHeaderRow headerRow = (TableHeaderRow) tableView.lookup("TableHeaderRow");