Hi zusammen,
ich habe eine Frage:
Ich verwende eine JTable, in der ich die einzelnen Zellen mit einer Hintergrundfarbe ausfülle, oder z.B. Objekte in die Zellen zeichne. Dies ist abhängig in welcher Zeile der Tabelle ich mich befinde.
Die Färbung kann auch 4 Unterschiedlichen Arten erfolgen, je nachdem welche Option gewählt wurde.
Bisher verwende ich einen BoxRenderer, der TableCellRenderer implementiert, diesen setze ich in der Tabelle für jede Spalte.
Nun zu meiner Frage:
In meinem BoxRenderer führe ich viele Funktionen durch:
1. Ich schaue in welcher Zeile ich bin, wodurch festgelegt wird ob ich eine Zelle färbe, oder darin zeichne.
2. Ich prüfe WIE ich färben soll, also überprüfe die ausgewählte Option
Jetzt dachte ich mir, ich könnte zumindest für die unterschiedliche Färbung, verschiedene TableCellRenderer implementieren, die ich beim setzen der Renderer in der JTable dann entsprechend auswähle. ALso z.B. so:
Dann habe ich noch gelesen, daß ich auch für jede Zelle sogra einen eigenen Renderer festlegen kann. Die Frage ist nur ob das sinn macht (da ich ja je nach Zeile Färbe oder zeichne) oder ob der zuvor beschriebene Ansatz (verschiedene Renderer nach Coloring.MODE) schon ausreicht?
ich habe eine Frage:
Ich verwende eine JTable, in der ich die einzelnen Zellen mit einer Hintergrundfarbe ausfülle, oder z.B. Objekte in die Zellen zeichne. Dies ist abhängig in welcher Zeile der Tabelle ich mich befinde.
Die Färbung kann auch 4 Unterschiedlichen Arten erfolgen, je nachdem welche Option gewählt wurde.
Bisher verwende ich einen BoxRenderer, der TableCellRenderer implementiert, diesen setze ich in der Tabelle für jede Spalte.
Java:
{
// table column represents attributes
// set empty header renderer for all columns
for (int i=0; i!=getColumnModel().getColumnCount(); ++i) {
TableColumn tableColumn = getColumnModel().getColumn(i);
tableColumn.setHeaderRenderer(new EmptyHeaderRenderer());
tableColumn.setCellRenderer(new BoxRenderer(...));
}
}
Nun zu meiner Frage:
In meinem BoxRenderer führe ich viele Funktionen durch:
1. Ich schaue in welcher Zeile ich bin, wodurch festgelegt wird ob ich eine Zelle färbe, oder darin zeichne.
2. Ich prüfe WIE ich färben soll, also überprüfe die ausgewählte Option
Jetzt dachte ich mir, ich könnte zumindest für die unterschiedliche Färbung, verschiedene TableCellRenderer implementieren, die ich beim setzen der Renderer in der JTable dann entsprechend auswähle. ALso z.B. so:
Java:
{
// table column represents attributes
// set empty header renderer for all columns
for (int i=0; i!=getColumnModel().getColumnCount(); ++i) {
TableColumn tableColumn = getColumnModel().getColumn(i);
tableColumn.setHeaderRenderer(new EmptyHeaderRenderer());
if(coloring.equals(Coloring.MODE_A)){
tableColumn.setCellRenderer(new BoxRenderer_A(...));
} else if(coloring.equals(Coloring.MODE_B)){
tableColumn.setCellRenderer(new BoxRenderer_B(...));
}
}
}
Dann habe ich noch gelesen, daß ich auch für jede Zelle sogra einen eigenen Renderer festlegen kann. Die Frage ist nur ob das sinn macht (da ich ja je nach Zeile Färbe oder zeichne) oder ob der zuvor beschriebene Ansatz (verschiedene Renderer nach Coloring.MODE) schon ausreicht?