Ниже приведено изображение моего JTable
. Моя проблема заключается в том, что синий фон в каждой другой строке отсутствует в четвертом столбце. Моя таблица и средство отображения ячеек также находятся ниже.JTable cell renderer skips Булевая колонка
Таблица Модель:
public class MyTableModel extends DefaultTableModel {
public int getColumnCount() {
return columnNames.length;
}
public String getColumnName(int column) {
return columnNames[column];
}
public int getRowCount() {
return data.length;
}
public Object getValueAt(int row, int column) {
return data[row][column];
}
public Class getColumnClass(int column) {
return (getValueAt(0, column).getClass());
}
public void setValueAt(Object value, int row, int column) {
data[row][column] = value;
}
public boolean isCellEditable(int row, int column) {
return (column == 3);
}
}
Cell Renderer:
private class CalendarRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean focused, int row, int column) {
super.getTableCellRendererComponent(table, value, selected, focused, row, column);
setBackground(new Color(0xFFFFFF));
if (row % 2 == 1) {
setBackground(new Color(0xE8F2FE)); //light blue
}
setBorder(null);
setForeground(Color.black);
return this;
}
}
Редактор по умолчанию для 'Boolean' является редактором ячеек JCheckBox', это работает корректно. – MadProgrammer
Когда Java не работает «правильно»? Мне интересно, как я могу получить четвертую колонку, чтобы иметь синий фон. –
Вам понадобится предоставить свой собственный 'Boolean'' TableCellRenderer' – MadProgrammer