首頁 >Java >java教程 >如何刷新JTable中一行的背景顏色?

如何刷新JTable中一行的背景顏色?

Barbara Streisand
Barbara Streisand原創
2024-12-14 05:40:10232瀏覽

How to Refresh Background Color for a Row in JTable?

刷新JTable 中的行的背景顏色

使用Swing JTables 時,可以使用以下命令設定各個行的背景顏色自訂單元格渲染器。透過在渲染器類別中實作prepareRenderer方法,您可以根據特定條件或使用者互動操作背景顏色。

考慮以下範例:

public class ColorTable extends JTable {

    private static final long serialVersionUID = 1L;
    private Map<Integer, Color> rowColors = new HashMap<>();

    @Override
    public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {

        Component c = super.prepareRenderer(renderer, row, column);
        if (!isRowSelected(row)) {
            Color color = rowColors.get(row);
            if (color != null) {
                c.setBackground(color);
            } else {
                c.setBackground(getDefaultRenderer(getColumnClass(column)).getBackground());
            }
        }
        return c;
    }

    public void setRowColor(int row, Color color) {
        rowColors.put(row, color);
    }
}

在此範例中,ColorTable類別擴充了 JTable,並讓您透過呼叫 setRowColor 方法來為行指定不同的背景顏色。這對於直觀地指示表中各行的狀態或重要性非常有用。

重設行顏色

將所有行的背景顏色重設為預設值顏色,可以使用以下方法:

public void resetRowColors(Color defaultColor) {
    rowColors.clear();
    setBackground(defaultColor);
}

範例用法:

// Create a ColorTable
ColorTable table = new ColorTable();

// Add data to the table
table.setModel(new DefaultTableModel(new Object[][], new String[]{}));

// Set background color for specific rows
table.setRowColor(0, Color.GREEN);
table.setRowColor(1, Color.RED);

// Reset row colors to default
table.resetRowColors(Color.WHITE);

透過實作自訂儲存格渲染器並提供設定和重設行顏色的方法,您可以根據您的特定要求輕鬆修改JTable 行的外觀。

以上是如何刷新JTable中一行的背景顏色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn