本教程适用于JDK 8。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及其后续版本中更新的语言特性的概述。
请参阅JDK发行说明,了解有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息。
Nimbus是Java SE 6 Update 10(6u10)版本中引入的精美跨平台外观。下面的屏幕截图来自SwingSet3,显示了Nimbus外观。
Nimbus使用Java 2D矢量图形来绘制用户界面(UI),而不是静态位图,因此UI可以以任何分辨率清晰地渲染。
Nimbus是高度可自定义的。你可以直接使用Nimbus外观,或者使用自己的品牌进行外观的自定义。
为了向后兼容性,Metal仍然是默认的Swing外观,但你可以通过以下三种方式切换到Nimbus:
import javax.swing.UIManager.*; try { for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (Exception e) { // 如果Nimbus不可用,你可以设置GUI为其他外观。 }
代码的第一行检索平台上安装的所有外观实现的列表,然后遍历列表以确定Nimbus是否可用。如果可用,就将Nimbus设置为外观。
UIManager.setLookAndFeel
方法显式设置Nimbus外观,因为并不是所有Java SE 6的版本或实现都支持Nimbus。此外,Nimbus包的位置在JDK 6 Update 10和JDK 7版本之间发生了变化。通过遍历所有安装的外观实现是一种更健壮的方法,因为如果Nimbus不可用,将使用默认的外观。对于JDK 6 Update 10版本,Nimbus包位于com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
。
java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel MyApp
<JAVA_HOME>/lib/swing.properties
文件中添加以下行来永久设置默认外观为Nimbus:
swing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel
swing.properties
文件尚不存在,则需要创建它。