Swing有可插拔的概念look and feels。其中一些外观和感觉模仿了Windows,GTK +等本机组件的外观。即使在Windows上,也有两种独立的外观和感觉 - 我认为是Classic和Vista。也许你在两个系统上使用不同的操作系统,而GUI设计器会自动设置外观和感觉。然而,绝大多数不会 - 默认的外观和感觉Metal(在Java 1.6.10之前)和Nimbus在每个操作系统上都是一样的。
// build the look and feel section
final LookAndFeelInfo[] lookAndFeelInfos = UIManager.getInstalledLookAndFeels();
List<String> lookAndFeelNames = new ArrayList<String>();
lookAndFeelNames.add("System");
for (LookAndFeelInfo lookAndFeelInfo : lookAndFeelInfos) {
if (!lookAndFeelInfo.getName().equals("CDE/Motif")) {
lookAndFeelNames.add(lookAndFeelInfo.getName());
}
}
if (selectedLookAndFeel.equals("System")) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(SpellbookFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(SpellbookFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(SpellbookFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(SpellbookFrame.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
for (LookAndFeelInfo lookAndFeelInfo : lookAndFeelInfos) {
if (lookAndFeelInfo.getName().equals(selectedLookAndFeel)) {
try {
UIManager.setLookAndFeel(lookAndFeelInfo.getClassName());
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (UnsupportedLookAndFeelException e1) {
e1.printStackTrace();
}
}
}
}
SwingUtilities.updateComponentTreeUI(tabbedPane);
SwingUtilities.updateComponentTreeUI(parent);
代码的第一部分建立可用外观的列表和感觉的名字和被选择在其中的一个第二行为。但既然你想总是使用相同的拉夫,你可以使用类似的东西:
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
您尝试使用彩色按钮修复哪些UI设计/可用性问题? - – 2010-04-27 13:26:22
显然,Windows Vista,Mac OS X和Nimbus L&F忽略设置背景颜色。 – Nate 2010-04-27 16:31:02