smartin123
Mitglied
Guten Abend,
ich hab mal wieder ein schönes Problem, wo ich keine Ahnung habe.
Innerhalbe eines JFrames ist eine JTable, wo die ersten 2 Spalten durch ein Model
gefüllt werden:
In diesem Model sind 2 Vectoren, ein Vector für Spaltennamen. Und der andere Vector um die Daten
in die JTable zu bekommen.
Soweit, so gut, das funktioniert einwandfrei.
Nun füge ich in Spalte 3 Ampeln hinzu:
jTable.getColumn("Spalte3").setCellRenderer(new TrafficLightRenderer());
mit Hilfe eines CellRenders.
TrafficLight ist eine Klasse, wo eine Ampel gezeichnet wird. Das ist auch kein Problem.
Für Ampelfarbe muss man, rot,gelb oder grün an den Konstruktor übergeben.
Leider wird mit dieser Methode die Farbe der Ampeln für alle Zeilen in der Spalte3 vorgegeben,
durch diese Methode:
(jTable.getColumn("Spalte3").setCellRenderer(new TrafficLightRenderer("grün"))icon_wink.gif
Nun zu meiner Frage:
Ich möchte die Ampel in Abhängigkeit von Daten des Datenvector v2 stellen.
Also die Ampel so zeichen, wie es in Spalte2 vorgegeben ist.
So sieht die Tabelle aus:
Wie würdet ihr vorgehen?
Wäre spitze, wenn jemand eine Idee hätte.
vg
ich hab mal wieder ein schönes Problem, wo ich keine Ahnung habe.
Innerhalbe eines JFrames ist eine JTable, wo die ersten 2 Spalten durch ein Model
gefüllt werden:
Code:
public class MyDefaultTableModel extends DefaultTableModel {
public MyDefaultTableModel() {
Vector v1 = new Vector();
Vector v2 = new Vector();
setDataVector(v1, v2);
}
}
in die JTable zu bekommen.
Soweit, so gut, das funktioniert einwandfrei.
Nun füge ich in Spalte 3 Ampeln hinzu:
jTable.getColumn("Spalte3").setCellRenderer(new TrafficLightRenderer());
mit Hilfe eines CellRenders.
Code:
public class TrafficLightRenderer extends JLabel implements TableCellRenderer {
public TrafficLightRenderer(){
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
TrafficLight ampel = new TrafficLight("Ampelfarbe");
ampel.setVisible(true);
return ampel;
}
Für Ampelfarbe muss man, rot,gelb oder grün an den Konstruktor übergeben.
Leider wird mit dieser Methode die Farbe der Ampeln für alle Zeilen in der Spalte3 vorgegeben,
durch diese Methode:
(jTable.getColumn("Spalte3").setCellRenderer(new TrafficLightRenderer("grün"))icon_wink.gif
Nun zu meiner Frage:
Ich möchte die Ampel in Abhängigkeit von Daten des Datenvector v2 stellen.
Also die Ampel so zeichen, wie es in Spalte2 vorgegeben ist.
So sieht die Tabelle aus:
Code:
spalte1(id) spalte2 Spalte3(AmpelObject)
1 grün
2 rot
3 rot
4 gelb
5 grün
Wie würdet ihr vorgehen?
Wäre spitze, wenn jemand eine Idee hätte.
vg