puuuuuuf, I'm starting to like swing :) I'm trying to write cellRenderer to set up all the cells except those in the first row and column. So I wrote the following:
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; } }
and set the rendering as follows:
scheduleTable.setDefaultRenderer(Object.class, new CustomTableCellRenderer());
but for some reason, this approach applies a renderer to the entire cell. So they are all Green. If I do something wrong, could you help me?
Thanks in advance!
Addition
scheduleTable = 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; } };
this code makes the whole table green.
This code:
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; } };
gives the following result: ( 
The following situations I have with different n in the expression row != 0 && column != 0 :
