【发布时间】:2014-03-04 13:06:19
【问题描述】:
在 Java 中,我想设置程序的外观(特别是“获取系统外观”)。
是否需要在每个组件(也就是每个 JPanel、每个 JFrame)内部设置外观和感觉?
或者是否设置一次外观,就足以影响整个应用程序?
如果一次就足够了,那么我应该将代码放在哪里(在什么类中?)
【问题讨论】:
标签: java swing look-and-feel
在 Java 中,我想设置程序的外观(特别是“获取系统外观”)。
是否需要在每个组件(也就是每个 JPanel、每个 JFrame)内部设置外观和感觉?
或者是否设置一次外观,就足以影响整个应用程序?
如果一次就足够了,那么我应该将代码放在哪里(在什么类中?)
【问题讨论】:
标签: java swing look-and-feel
你在main方法中定义它,它会在任何地方使用。
这是主屏幕的主要方法:
例子:
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainScreen mainWindow = new MainScreen();
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
mainWindow.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
【讨论】:
main方法中,还是在生成主JFrame的类中?
或者是否设置一次外观,就足以影响整个应用程序?
正确
如果一次就足够了,那么我应该将代码放在哪里(在什么类中?)
通常,在创建应用程序框架的类中(在创建之前):
UIManager.setLookAndFeel(lookAndFeelName);
...
JFrame frame = new JFrame(...);
此外,如果需要,您可以动态更改整个应用程序的 LnF:
UIManager.setLookAndFeel(lookAndFeelName);
SwingUtilities.updateComponentTreeUI(frame);
frame.pack();
【讨论】: