Ich schreibe gerade an einem JTable und will bei jeder Zeile eine bestimmte Farbe setzten.
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component component = super.getTableCellRendererComponent( table, value, isSelected, hasFocus,row, column);
try{
s = table.getValueAt(row, 10 ).toString();
System.out.println(s);
}
catch(Exception e){
}
System.out.println("ok");
if(s == "red"){
System.out.println("ok");
component.setBackground( Color.red );
Main.table.repaint();
}
else{
component.setBackground(Color.white);
System.out.println("fertig");
}
return component;
}
Ihr seht schon ich habe viel Output Streams, da ich selbst lange probiert hab das Problem zu lösen. Nun das Problem ist ganz einfach. Die If-Anweisung wird aufgerufen, geht aber negativ aus obwohl s “red” ist, weiß ich wegen den System.out.println();. Deswegen springt er danach immer in die else-Anweisung. Es treten auch keine Fehlermeldungen auf und das Programm läuft bis auf diesen Teil wunderbar.
In der Konsole sieht das ungefähr so aus: red
ok
fertig
red
ok
fertig
red
ok
fertig
red
ok
fertig
…
Mein Ziel ist es das die If-Anweisung halt auch postiv ausgeht, wenn Übereinstimmung vorhanden ist.
Ich hoffe mir kann Jemand helfen und meinen Fehler erläutern. Vielen Dank