是否可以将特定组件(在我的情况下为JTable
)设置为不同于已使用的L& F?如果是的话,该怎么做?
编辑:我根据这个tutorial编写了这段代码。为什么这段代码不起作用?没有失败或例外,但JTable
仍然是相同的。
NimbusLookAndFeel nb = new NimbusLookAndFeel();
jTable1.putClientProperty("Windows.Overrides",nb.getDefaults());
jTable1.putClientProperty("Windows.Overrides.InheritDefaults",false);
答案 0 :(得分:1)
如果您想将Nimbus L& F应用于按钮,那么您只需确定哪个类负责渲染Nimbus按钮。这个过程就像您想要应用自己的自定义L& F一样,您可以在按钮上设置自己的UI类。
答案 1 :(得分:1)
您可以参考以下网址获取nimbus外观的所有UI默认值
http://jasperpotts.com/blogfiles/nimbusdefaults/nimbus.html
转到“表”部分,并在应用程序中使用所有这些表组件特定的UI默认值。那应该是你的伎俩。
答案 2 :(得分:0)
你可以做的一个技巧是创建一个使用Nimbus外观的虚拟应用程序,创建一个JTable
,并执行类似
System.out.println (myTable.getUI ().getClass ().getName ());
此时,您将知道在使用Nimbus LAF时使用哪个UI对象来呈现JTable
。在setUI (TableUI)
上调用JTable
时,您可以使用此类名:
myTable.setUI (new ui_manager_class_name ());
正如其他人所说,这不是我们推荐的。 LAF通常用于整体包装,而不是2-3 LAF的组合。你的另一种出路可能是使用MultiLookAndFeel
,但我从未使用它,所以我不确定它是否满足你的需求。如果要正确使用,请阅读相关的tutorial。