簡體   English   中英

更改JTable單元格顏色,而無需單擊

[英]Change JTable cell colours without clicking

簡而言之,我已經在JTable中填充了十六進制數據。 該表保留在屏幕上,同時進行一些后台處理。

后台處理檢查一些8字節值,例如,如果成功處理了前8個字節,則需要表中的前8個單元格將其背景色更改為綠色。 接下來的8個操作將繼續進行,直到表格結束。

但我不知道如何實現這一目標。

public class MyCellRenderer extends javax.swing.table.DefaultTableCellRenderer {

    @Override
    public java.awt.Component getTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        java.awt.Component cellComponent = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        System.out.println("Cell render test");
        cellComponent.setBackground(java.awt.Color.GREEN);
        return cellComponent;
    }
}

這是我發現的一些代碼,可以渲染單元格,但是它似乎僅適用於整個列,使用:

.getColumnModel().getColumn(10).setCellRenderer(customRenderer);

我猜這里有兩個不同的問題:

  1. 如何指定要應用自定義渲染的確切單元格范圍,即第0行,第0-7列?
  2. 如何在用戶不與表進行交互的情況下應用此功能。 我可以找到許多自定義渲染內容,這些都是針對用戶選擇單元格的情況,但是在這種情況下,沒有手動選擇任何單元格。 我猜這可能是觸發某種事件的情況。

如果有人可以提供任何建議或意見,我將不勝感激。

該方法的最后一個參數是行和列。 為了獲得所需的結果,渲染器必須考慮這些值。

暫無
暫無

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

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