Java 外观 - 如何打破对 sun.swing.SwingUtilities2 的依赖

标签 java swing look-and-feel

我正在维护一些代码,以在 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/

相关文章:

Java继承公共(public)类并带有默认构造函数

Java Fest 消耗控制台输出

java - 分层 Pane 一次后就不起作用

java - 在 Jython 中绘制像素

java - 在 JComponent 上创建阴影的颜色不同于白色的问题

java - 某种外观和感觉是否保证可用?

java - 迭代器是否违反堆栈/队列数据结构?

java - org.springframework.web.client.RestTemplate 预计被声明为 @Bean 和普通 @Autowired 抛出错误

java - 最大化 JInternalFrame Windows 外观和感觉最大化所有 JInternalFrame

java - 从 Mysql 数据库填充 JFreechart TimeSeriesCollection?