簡體   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