是否可以为同一框架内的不同面板设置不同的外观和感觉?
说,我有3个面板添加到一个框架和第一个面板我想设置金属外观和感觉,对于第二个面板我想要窗户的外观和感觉,对于第三个面板它应该是默认的摇摆风格。
可能吗?
设置外观的javax.swing.UIManager
类是一个单例。 任何时候都只能设置一个。
但是,您可以(如果您愿意)覆盖单个组件上的UI委托(请参阅JComponent.setUI() )。 使用这种方法你可能会破坏一些使用备用外观的UI委托的组件。 但在大多数情况下,他们会通过“真实”的外观和感觉来查看UIDefaults
,所以最好的情况可能是差一点。
不,这是不可能的。
实际上它是可能的,它正在发生在我身上。 在我的GUI课程中,我打过电话
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel")
出于某种原因,容器面板仍然是金属,而所有其他组件都是Nimbus。
怎么样在另一个类加载器中加载UIManager.setLookAndFeel?
那不行吗?
我想如果它有效,你需要在类加载器之间桥接数据。 我认为谷歌已经写了这样一座桥梁。