繁体   English   中英

如何为JTable设置不同的外观?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM