[英]How to set a different Look & Feel for a JTable?
是否可以为已使用的特定组件(在我的情况下为JTable
)设置不同的L&F? 如果是这样,该怎么办?
编辑:我根据本教程编写了这段代码。 为什么此代码不起作用? 没有失败或异常,但是JTable
仍然相同。
NimbusLookAndFeel nb = new NimbusLookAndFeel();
jTable1.putClientProperty("Windows.Overrides",nb.getDefaults());
jTable1.putClientProperty("Windows.Overrides.InheritDefaults",false);
如果您要将Nimbus L&F应用于按钮,则只需找出负责渲染Nimbus按钮的类。 该过程与您要应用自己的自定义L&F(在按钮上设置自己的UI类)的过程相同。
您可以参考以下URL来获取Nimbus外观的所有UI默认值
http://jasperpotts.com/blogfiles/nimbusdefaults/nimbus.html
转到表格部分,并在应用程序中使用所有那些特定于表格组件的UI默认值。 那应该为您解决问题。
您可以做的一个技巧是创建一个使用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
,但我从未使用过它,因此我不确定它是否能够满足您的需求。 如果要正确使用它,应该阅读相关的教程 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.