Hallo folks,
ich habe ein kleines Problem mit meinem eigenen ColoredRenderer
Problem ist, das meine Tabelle 25 Spalten und 30 Reihen hat. Die Tabelle aber nur einmal erzeugt wird und danach keine neuen Einträge oder ähnliches hinzugefügt werden. Daher müsste die Farbe nur zu Beginn einmal festgelegt werden und nicht ununterbrochen, was die Tabelle super langsam macht.
Ist das irgendwie möglich?
Danke
ich habe ein kleines Problem mit meinem eigenen ColoredRenderer
Code:
table1_tb.setDefaultRenderer(Object.class,
new ColoredRenderer(table1_tm));
Code:
// Cell Renderer
//******************************************************************************
class ColoredRenderer
extends JButton implements TableCellRenderer {
private Color lightGreen = new Color(155, 230, 200);
private Color lightRed = new Color(255, 175, 157);
TableModel tablemodel;
public ColoredRenderer(TableModel tablemodel) {
this.tablemodel = tablemodel;
}
public Component getTableCellRendererComponent(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
// Label erzeugen
JLabel label = new JLabel( (String) value);
label.setOpaque(true);
Border b = BorderFactory.createEmptyBorder(1, 1, 1, 1);
label.setBorder(b);
label.setFont(Colors.font);
if (column == 0) {
label.setHorizontalAlignment(SwingConstants.LEFT);
}
else {
label.setHorizontalAlignment(SwingConstants.CENTER);
if (column == 1 || column == 4 || column == 7 || column == 10 ||
column == 13
|| column == 16 || column == 19 || column == 22) {
label.setBackground(Colors.LIGHT_BLUE);
}
else if (column == 2 || column == 5 || column == 8 ||
column == 11 || column == 14
|| column == 17 || column == 20 || column == 23) {
label.setBackground(lightGreen);
}
else if (column == 3 || column == 6 || column == 9 ||
column == 12 || column == 15
|| column == 18 || column == 21 || column == 24) {
label.setBackground(lightRed);
}
}
table.setGridColor(Color.BLACK);
if (isSelected) {
label.setBackground(Colors.SELECT_BLUE);
}
return label;
}
}
Problem ist, das meine Tabelle 25 Spalten und 30 Reihen hat. Die Tabelle aber nur einmal erzeugt wird und danach keine neuen Einträge oder ähnliches hinzugefügt werden. Daher müsste die Farbe nur zu Beginn einmal festgelegt werden und nicht ununterbrochen, was die Tabelle super langsam macht.
Ist das irgendwie möglich?
Danke