Возможно, самой простой может быть конкретная табличная модель, обертывающая JDBC.
Однако общий подход заключается в изменении отображения:
TableCellRenderer old = movieTable.getDefaultRenderer(); // I.o. super?
movieTable.setDefaultRenderer(String.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
boolean notAvailable = value == null;
if (notAvailable) {
value = "N/A";
}
Component compon = super.getTableCellRendererComponent(table,
value,
isSelected,
hasFocus,
row,
column);
if (notAvailable) {
compon.setBackground(Color.GRAY);
}
return compon;
}
});
Проблема в том, что может быть несколькорендеры.