如何在 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 原生外观?的主要内容,如果未能解决你的问题,请参考以下文章

GUI编程-----概述

java之 22天 GUI 图形界面编程

十java_GUI

如何以编程方式使用 sudo? IE。将 sudo 集成到我的 GUI 中

如何在处理时更改 GUI

使用 Java 在 GUI 编程中混合 awt 和 swing