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

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

可能吗?

设置外观的javax.swing.UIManager类是一个单例。 任何时候都只能设置一个。

但是,您可以(如果您愿意)覆盖单个组件上的UI委托(请参阅JComponent.setUI() )。 使用这种方法你可能会破坏一些使用备用外观的UI委托的组件。 但在大多数情况下,他们会通过“真实”的外观和感觉来查看UIDefaults ,所以最好的情况可能是差一点。

不,这是不可能的。

实际上它是可能的,它正在发生在我身上。 在我的GUI课程中,我打过电话

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

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

怎么样在另一个类加载器中加载UIManager.setLookAndFeel?

那不行吗?

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