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