Java-надстройки не делают пакет доступным - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь получить доступ к закрытому классу и общедоступному статическому методу JavaFX в нем (javafx.scene.control.skin.TableSkinUtils.resizeColumnToFitContent), чтобы я мог автоматически изменять размеры столбцов TableView.

Однако я использую систему модулей, посколькуПохоже, что JavaFX 11 требует, чтобы мое приложение было модулем.Если я не указываю модуль для своего приложения, я получаю эту ошибку: Error: JavaFX runtime components are missing, and are required to run this application Я бы вообще предпочел вообще не использовать систему модулей, есть ли способ?

Теперь, из-заВ модульной системе я получаю исключение при попытке сделать метод TableSkinUtils.resizeColumnToFitContent доступным:

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make public static void javafx.scene.control.skin.TableSkinUtils.resizeColumnToFitContent(javafx.scene.control.skin.TableViewSkinBase,javafx.scene.control.TableColumnBase,int) accessible: module javafx.controls does not "opens javafx.scene.control.skin" to module Explorer

Итак, я попытался добавить этот обходной путь: --add-opens javafx.controls/javafx.scene.control.skin=ALL-UNNAMED к параметрам виртуальной машины конфигурации запуска Intellij.

Однако, с или без выше, я получаю то же исключение.

Что я, возможно, делаю неправильно?

...