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