如何设置不同的外观和放大器感觉JTable?

时间:2011-12-10 23:00:34

标签: java swing jtable look-and-feel

是否可以将特定组件(在我的情况下为JTable)设置为不同于已使用的L& F?如果是的话,该怎么做?

编辑:我根据这个tutorial编写了这段代码。为什么这段代码不起作用?没有失败或例外,但JTable仍然是相同的。

NimbusLookAndFeel nb = new NimbusLookAndFeel();
jTable1.putClientProperty("Windows.Overrides",nb.getDefaults());
jTable1.putClientProperty("Windows.Overrides.InheritDefaults",false);

3 个答案:

答案 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