簡體   English   中英

從JTable刪除渲染器

[英]Remove Renderer from a JTable

我有一個自己編寫的帶有渲染器的JTable。 當我將JTable設置為禁用時,我希望將其塗成灰色,並且無法使用當前的Renderer。 這就是為什么我想在禁用JTable時刪除渲染器,然后在啟用JTable時再次設置它。

有可能嗎,或者我可以采用其他解決方案?

在設置自定義渲染器之前,請從JTable獲取默認渲染器。 將其存儲在參考中以備后用。 現在將您的自定義渲染器設置為JTable。

禁用該表之前,請設置默認表一,啟用該表時則設置自定義表一。

我希望這對您有用。

您可以設置一個新的DefaultTableRenderer()。 在渲染器中也應該有可能。 或者,您可以擴展DefaultTableRenderer。

使用JXTable(來自SwingX項目 )-其渲染器自動遵守表啟用

編輯

再次閱讀時:

我有一個自己編寫的帶有渲染器的JTable。 當我將JTable設置為禁用時,我希望將其繪制為灰色,並且無法使用當前的Renderer

為什么不可能呢? 在您的自定義渲染器中,只需查詢表啟用並相應地配置其狀態

 public Component getTableCellRendererComponent(...) {
     ...
     myRenderingComponent.setEnabled(table.isEnabled());
     return myRenderingComponent;
} 

您可以檢查返回渲染器組件時是否啟用了該表。 然后,您可以在渲染器中設置狀態變量,該狀態變量將在禁用該單元時與啟用該單元時不同地渲染該單元。 這種方法還可以允許其他狀態-我有一個渲染器,可以根據特定列中的值允許使用不同的“配置文件”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM