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