Hallo Zusammen,
ich habe eine Frage zu folgendem Codeschnipsel. Das ist ein Auszug eines TableCellRenderers für einen JTable.
Was tut das Ding? Wenn die CheckBox checkKomplettlieferung ausgewählt ist (also mit Häkchen), wird die Zeile ganz normal und mit gelbem Background angezeigt. Wenn die CheckBox nicht angetickert ist, wird die Zeile quasi ausgeblendet (Das mit der Höhe auf 1 Pixel setzten ist noch eine Notlösung, mangels Fund einer Methode zum Ausblenden).
Mir geht es jetzt aber darum. Wenn die Checkbox nicht angetickert ist, und die Zeile somit ausgeblendet ist, befindet sich der Renderer irgendwie in einer Endlosschleife. Das habe ich über die Testausgabe "OK" in der Konsole festgestellt. Die läuft das endlos weiter. Setze ich das Häckchen wieder, wird die Zeile wieder normal angezeigt und "OK" wird nicht weiter ausgegeben.
Wie kommt das? Müsste der EDT nicht nur einmal prüfen, ob Häckchen gesetzt oder nicht und dann die entsprechende Aktion ausführen?
Ach ja, im Übrigen sieht der Action Listener für diue checkbox ganz simple einfach so aus,
Ich danke für eure Gedankenstöße.
Oli
ich habe eine Frage zu folgendem Codeschnipsel. Das ist ein Auszug eines TableCellRenderers für einen JTable.
Code:
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean arg2, boolean arg3, int row,
int column) {
JTextField editor = new JTextField ();
System.out.println("OK");
String s = (String) table.getValueAt(row, 11);
switch (s) {
case "Komplettlieferung" :
if (checkKomplettlieferung.isSelected()) {
editor.setBackground(Color.YELLOW);
} else {
table.setRowHeight(row, 1);
}
break;
Was tut das Ding? Wenn die CheckBox checkKomplettlieferung ausgewählt ist (also mit Häkchen), wird die Zeile ganz normal und mit gelbem Background angezeigt. Wenn die CheckBox nicht angetickert ist, wird die Zeile quasi ausgeblendet (Das mit der Höhe auf 1 Pixel setzten ist noch eine Notlösung, mangels Fund einer Methode zum Ausblenden).
Mir geht es jetzt aber darum. Wenn die Checkbox nicht angetickert ist, und die Zeile somit ausgeblendet ist, befindet sich der Renderer irgendwie in einer Endlosschleife. Das habe ich über die Testausgabe "OK" in der Konsole festgestellt. Die läuft das endlos weiter. Setze ich das Häckchen wieder, wird die Zeile wieder normal angezeigt und "OK" wird nicht weiter ausgegeben.
Wie kommt das? Müsste der EDT nicht nur einmal prüfen, ob Häckchen gesetzt oder nicht und dann die entsprechende Aktion ausführen?
Ach ja, im Übrigen sieht der Action Listener für diue checkbox ganz simple einfach so aus,
Code:
public class statusSorter implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
model.tableChanged();
}
}
Ich danke für eure Gedankenstöße.
Oli