Я поддерживаю некоторый код, реализует индивидуальный 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).