簡體   English   中英

更改 JTable 單元格背景 colors

[英]Change JTable cell background colors

好吧,這是我最后一個問題的后續: JTable:單擊按鈕時更改單元格背景我現在可以使用 isSelected 參數更改 JTable 中選定單元格的背景顏色,但我無法弄清楚邏輯讓單元格渲染器在每次渲染時設置某些單元格的背景。

基本上我想選擇幾個單元格,單擊一個按鈕,更改所選單元格的背景顏色,並在我取消選擇單元格后讓它保持該顏色(不影響未選擇的單元格)。

這似乎是一個如此簡單的問題,但我完全不知道如何做到這一點。

與往常一樣,任何輸入都會受到贊賞。

您將需要存儲有關選擇了哪些單元格和所需背景的信息。 然后,您的 CellRenderer 在決定使用什么顏色作為背景時將需要參考該信息。

渲染器的基本邏輯:

  • 如果選擇使用選定的顏色
  • 如果單元格被標記為保持背景顏色
  • 在所有其他情況下,使用正常的背景顏色

您必須將包含顏色的復雜 object 作為單元格值傳遞。

按下按鈕應更新選定對象的對象顏色(在您的情況下為選定的單元格)。 您的渲染器必須使用此值的顏色來填充背景。

改變對象的顏色后,調用table.cellChanged()(不記得方法名)觸發重繪。

class CellValue {
 public Color color;
 public String text; 
}

...
//renderer
getCellRendererComponent(...) {
  JLabel l = super.getCellRendererComponent(...);
  CellValue v = (CellValue) value;
  l.setBackgroundColor(v.color);
}

類似的東西

暫無
暫無

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

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