我正在维护一些使用自定义外观的Java代码。最近由于其他原因升级了Java版本,但发现由于字段未找到,外观遭到破坏。
sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET;
这段代码是基于 Java 6u02 的 BasicMenuItemUI.layoutMenuItem()
类实现的(源代码在此处)。我发现 Oracle 在新版本 Java 6u31 中重构了他们的代码,引入了一个名为 MenuItemLayoutHelper
的类。
虽然我可以使用 MenuItemLayoutHelper
,但这并不能解决问题,只是将问题推迟到下一次 Java 内部结构被更改的时候。因此,我将其排除为解决方案。
我想请教如何实现类似于 BasicMenuItemUI
的从左到右的布局,而不需要知道父级的最大文本偏移量(消除对 sun.swing.SwingUtilities 的不良依赖)。