我对一个旧的Java Swing应用程序有问题,该应用程序可以在JRE8上运行良好。但是,当我使用JDK11(具有Java 8兼容级别)构建应用程序并在JRE11上运行该应用程序时,我遇到了JInternalFrame标题栏的显示问题。
问题是JInternalFrame标题栏的外观。在JRE8中,一切看起来都不错,但是在JRE11下,标题栏较小,“关闭”,“最大化”和“最小化”按钮有些“被挤压”。在JRE11中,整个框架周围也没有适当的边框,看起来标题栏会比框架本身更宽。
我正在使用默认的系统外观,并在Windows 10上运行该应用程序。
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
在JRE8中的外观:
以及它在JRE11中的外观:
我尝试使用以下代码设置标题栏的尺寸:
((javax.swing.plaf.basic.BasicInternalFrameUI) getUI()).getNorthPane().setPreferredSize(new Dimension(103, 33));
但是我只能使标题栏变高-不可能使最小/最大/关闭按钮看起来正确。
我还尝试过比较UIManager.defaults()在8和11之间,但对于InternalFrame。*属性,两个Java版本似乎具有相同的值。
有人对此问题有任何想法吗?