我正在维护一些代码,以在 Java 中实现自定义外观。在最近升级 Java 版本时(出于其他原因),我发现由于在
sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET;
这是一个紧密基于 BasicMenuItemUI.layoutMenuItem()
大约 Java 6u02 ( here's the source ) 的类。我发现 Oracle 重构了他们的代码以在我使用的新目标版本 Java 6u31 中包含一个 MenuItemLayoutHelper
。
我可以只使用 MenuItemLayoutHelper
但这并没有解决问题,它只是将它推迟到下一次 Java 内部结构发生变化时。因此,我已将此作为解决方案打折。
我正在寻求一些关于如何实现类似于 BasicMenuItemUI
的从左到右布局的建议,而无需知道父项的最大文本偏移量(消除对 sun.swing.SwingUtilities 的不良依赖)。
最佳答案
正如 albfan 所说,你不能。您要么必须依赖代码,复制类并在您的程序中使用它,要么根本不使用它并使用第三方库,要么不使用该功能。
关于Java 外观 - 如何打破对 sun.swing.SwingUtilities2 的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040014/