настраиваемое средство визуализации ячеек для определенной строки и столбца
puuuuuuf, я начинаю любить качание :) Я пытаюсь написать cellRenderer для пользовательской визуализации всех ячеек, кроме тех, которые в первой строке и столбце. Поэтому я написал следующее:
public class CustomTableCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column);
if(row >0&&column>0){
cell.setBackground(Color.GREEN);
}
return cell;
}
}
и установите средство визуализации следующим образом:
scheduleTable.setDefaultRenderer(Object.class, new CustomTableCellRenderer());
но по какой-то причине такой подход применяет рендерер ко всей ячейке. Так что все они зеленые. Если я делаю что-то не так, не могли бы вы помочь мне с этим, пожалуйста?
Заранее спасибо!
ADDITIONscheduleTable = new JTable() {
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component comp = super.prepareRenderer(renderer, row, column);
int modelRow = convertRowIndexToModel(row);
int modelColumn = convertColumnIndexToModel(column);
if (modelColumn != 0 && modelRow != 0) {
comp.setBackground(Color.GREEN);
}
return comp;
}
};
этот код также делает всю таблицу зеленой.
Этот код:
scheduleTable = new JTable(tableModel) {
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component comp = super.prepareRenderer(renderer, row, column);
int modelRow = convertRowIndexToModel(row);
int modelColumn = convertColumnIndexToModel(column);
if (modelRow != 0 && modelColumn != 0) {
setBackground(Color.GREEN);
} else {
setBackground(Color.WHITE);
}
return comp;
}
};
дает мне следующий результат; (
Следующие ситуации у меня с разнымиn
в выраженииrow != 0 && column != 0
: