В коде, на который вы ссылаетесь, у вас есть собственный CellRenderer.
После того, как вы добавили его в таблицу, все, что вам нужно, это выполнить форматирование в соответствующем месте:
class CustomRenderer 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);
// Formatting here
return c;
}
}
DefaultTableCellRenderer - это не что иное, как компонент, который будет использоваться в JTable для рисования ячеек. Чтобы быть более точным, в этом случае компонент является JLabel (вы можете увидеть это, проверив источники из DefaultTableCellRenderer).
Таким образом, все, что вам нужно сделать, это выполнить объект "c" (или "this", поскольку метод на самом деле каждый раз возвращает один и тот же компонент: сам). Например, c.setBackground()
позволит вам установить цвет фона.
Метод getTableCellRendererComponent()
, который переопределяется, будет вызываться для каждой ячейки JTable с параметрами, сообщающими вам о контексте. Вы знаете таблицу, строку, столбец, значение, которое должно отображаться, а также знаете, выбрана ли ячейка или нет, что может помочь в вашем случае:
if (selected)
c.setBackground(Color.YELLOW);
Чтобы пойти дальше, обратите внимание, что поскольку вы переопределяете класс DefaultTableCellRenderer и используете его собственный метод, вы уже выполнили некоторое форматирование, например, цвет фона, который приведен в таблице. Таким образом, вам нужно только определить свой собственный цвет, когда вам нужно. Если нет, вам придется позаботиться обо всех случаях, поскольку, поскольку используется один и тот же компонент, вы заканчиваете набор цветов один раз, а затем применяете его ко всем последовательным ячейкам, потому что ничего не было бы сделано для его изменения.
Я рекомендую вам прочитать источники из DefaultTableCellRenderer (и его использования в JTable), если вы хотите узнать больше о том, как это делается и используется.