是否可以为同一框架内的不同面板设置不同的外观和感觉?

时间:2010-04-26 11:35:43

标签: java swing

说,我有3个面板添加到一个框架和第一个面板我想设置金属外观和感觉,对于第二个面板我想要窗户的外观和感觉,对于第三个面板它应该是默认的摇摆风格。

有可能吗?

4 个答案:

答案 0 :(得分:5)

javax.swing.UIManager类,其中look and feel is set是单身。任何时候都只能设置一个。

但是,您可以(如果您愿意)覆盖各个组件的UI代理(请参阅JComponent.setUI())。使用此方法,您可能会破坏使用备用外观的UI委托的一些组件。但在大多数情况下,他们会通过“真实”的外观和感觉来查找UIDefaults设置,所以最多可能是一个很差的近似值。

答案 1 :(得分:1)

不,这是不可能的。

答案 2 :(得分:0)

实际上它有可能,现在正在发生在我身上。在我的GUI类中,我调用了

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel")

由于某种原因,容器面板仍然是金属,而所有其他组件都是Nimbus。

答案 3 :(得分:0)

如何在不同的类加载器中加载UIManager.setLookAndFeel?

那不行吗?

我想如果它有效,你需要在类加载器之间桥接数据。我认为谷歌已经写了这样一座桥梁。