Как получить 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");
Другие вопросы по тегам