Ответ 1
Как сказал альбфан, вы не можете. Вы либо должны зависеть от кода, копировать класс и использовать его в своей программе, не использовать его вообще и использовать стороннюю библиотеку, либо не использовать эту функцию.
Я поддерживаю некоторый код, реализует индивидуальный Look and Feel на Java. Выполняя недавнюю модернизацию версии Java (по другим причинам), я обнаружил, что Look and feel сломался из-за поля, не найденного на
sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET;
Это в классе, который основан на BasicMenuItemUI.layoutMenuItem()
около Java 6u02 (здесь источник). Я обнаружил, что Oracle переопределил свой код, включив MenuItemLayoutHelper
в новую целевую версию, которую я использую, Java 6u31.
Я мог бы просто использовать MenuItemLayoutHelper
, но это не решает проблему, которую он просто отключает, до следующего раза, когда внутренние элементы Java будут изменены. Поэтому я отклонил это как решение.
После некоторых советов о том, как достичь выравнивания слева направо, похожее на BasicMenuItemUI
, не нужно знать максимальное смещение текста родителей (удаление плохой зависимости от sun.swing.SwingUtilities).
Как сказал альбфан, вы не можете. Вы либо должны зависеть от кода, копировать класс и использовать его в своей программе, не использовать его вообще и использовать стороннюю библиотеку, либо не использовать эту функцию.
Хорошо, возможно, это было некоторое время, но я понял, что могу просто использовать свою собственную константу вместо sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET, если она постоянно используется в коде для защиты. Ни в коем случае не идеальное решение.
В верхней части плохой импорт от солнечных пакетов прошел проверку правил кодирования.