>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으로 문의하세요.