【发布时间】:2018-09-10 09:26:26
【问题描述】:
我正在开发一个使用 Swing 的JInternalFrame 的应用程序。我正在使用UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 的原生外观。
但是,当在 Windows 10 机器上运行时,内部框架的原生外观和感觉仍保持 Windows Vista/7 风格。使用来自this bug report 的示例代码,
我得到以下结果(JDK 8 和 JDK 10):
我认为 Swing 提供的样式已经很长时间没有更新了,因此在比 Vista 更新的系统上,没有打算像原生窗口那样设置内部框架的样式。是否有可能的解决方法?
【问题讨论】:
-
一种解决方法是可能的,但很复杂。您需要提供自己的
InternalFrameUI。这意味着,您需要自己绘制标题栏和边框。然后您需要使用UIManager.put("InternalFrameUI", MyWindows10UI.class.getName());更新内部框架的 UI -
我也有同样的问题。我在 Windows Server 12 R2 上尝试过,但渲染仍在 Java 8 上运行。在我使用 Win 10 和 Java 8 的客户端上,我遇到了和你一样的情况:(
标签: java swing jinternalframe