如何在 Java GUI 编程中获得 Windows 原生外观?
Posted
技术标签:
【中文标题】如何在 Java GUI 编程中获得 Windows 原生外观?【英文标题】:How to get the windows native look in Java GUI programming? 【发布时间】:2012-07-10 15:00:33 【问题描述】:我是 Java 编程新手,想知道是否可以在 Java GUI 应用程序中获得 Windows 原生外观。显然 Swing 不起作用。
【问题讨论】:
【参考方案1】:试试这个代码:
javax.swing.UIManager.setLookAndFeel("Windows")
【讨论】:
-1 错误 - 您至少需要 LAF 的完全限定类名 @RonE dooh,差点晕倒,很快就尝试了(你可能也做过 ;-) 它就像记录的那样抛出java.lang.ClassNotFoundException: Windows
,所以很好奇:你为什么这么认为?
@kleopatra 我的错误,我只是习惯了使用参数lookAndFeelString
来选择 L&F 的辅助方法。 for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) if (lookAndFeelString.equals(info.getName())) UIManager.setLookAndFeel(info.getClassName());
我会删除我的其他评论以免误导。【参考方案2】:
使用以下内容:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
阅读UIManager 和How to Set the Look and Feel 了解更多信息。
【讨论】:
如果你使用这个,你必须进行更新,你可以在下面的 Kumar 回答中看到:SwingUtilities.updateComponentTreeUI(frmae);
updateComponentTreeUI(frame);
@Csanesz 如果在应用程序启动后 UI 已经可见时更改 L&F,则需要 updateComponentTreeUI
,否则不需要。上述教程讨论了各种选项。【参考方案3】:
试试这个....
语法是:
UIManager.setLookAndFeel(PLAF); (Pluggable Look and Feel)
所以,您必须包含以下 3 行。
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(frame);
updateComponentTreeUI(frame);
SwingUtilities.updateComponentTreeUI(frame)用于刷新改变后的frame。
【讨论】:
a) 不建议对类名进行硬编码 b) 不需要三行中的第三行(它已经在第二行中处理了 :-) 只有第一行是必要的,如果你在实现任何 GUI 组件之前运行它。以上是关于如何在 Java GUI 编程中获得 Windows 原生外观?的主要内容,如果未能解决你的问题,请参考以下文章