我在面板上有许多组件,我想对不同的组件应用不同的外观。有可能吗?
答案 0 :(得分:6)
答案 1 :(得分:5)
我在面板上有许多组件,我想对不同的组件应用不同的外观。有可能吗?
是的可能,不要这样做,因为大多数的外观都有不同的
颜色,字体,前景,背景
屏幕上的尺寸或PreferredSize
使用API中的其他方法进行LayoutManager
在JCOmponents API中实现了各种方法,例如颜色,字体,前景,背景
简单回答--->可能会在screeen上创造一个糟糕的混乱
我建议使用今天的Java Look and Feels,其中大多数都有各种颜色的主题,其中一部分分离主题,并可选择更改颜色主题,然后在那里你可以混合内置主题或/和每个JComponents的颜色主题
我认为,如果成功,您可以设置颜色,字体,前景,仅背景,外观和所需的基本知识,了解JComponents和/与LayoutManagers如何一起工作
答案 2 :(得分:1)
我知道我来晚了,但是我认为可能有人正在使用它,这是我用来向应用程序添加多外观的感觉的一种技巧: 在启动项目之前将其放置为外观选择器(在编写= new ...之前)
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
,然后将UIManager外观恢复为外观,如下例所示:
JButton test;
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
test = new JButton();
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Mwtal".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
仅此按钮测试将具有窗口的外观,其余的将具有Metal的外观。
希望此hack可以帮助某人。
答案 3 :(得分:0)