Как изменить цвет ячейки в jtable?

Пользователь

от ransom_homenick , в категории: Java , 5 месяцев назад

Как изменить цвет ячейки в jtable?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от miguel_ritchie , 5 месяцев назад

@ransom_homenick 

Вы можете изменить цвет ячейки в JTable, установив свой собственный рендерер ячейки. Чтобы это сделать, следуйте этим шагам:

  1. Создайте свой собственный класс рендерера ячейки, расширяющий класс DefaultTableCellRenderer.
  2. Переопределите метод getTableCellRendererComponent() своего класса рендерера ячейки, чтобы установить цвет ячейки.
  3. Получите столбец из JTable, который вы хотите изменить, и установите свой собственный рендерер ячейки для этого столбца с помощью метода setDefaultRenderer().


Ниже приведен пример кода, который демонстрирует, как это сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.Color;
import java.awt.Component;

public class ColorRenderer extends DefaultTableCellRenderer {
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                                                 boolean hasFocus, int row, int column) {
    Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    c.setBackground(Color.RED);
    return c;
  }
}

// ...

JTable table = new JTable();
table.getColumnModel().getColumn(0).setCellRenderer(new ColorRenderer());


В этом примере м