If-Anweisung immer negativ, obewohl sie positiv ausgehen sollte

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

Das Problem ist das du

s == "red" 

drinne hast. String (bzw Objekte allgemein) muss man mit

equals

vergleichen

OMG danke, so ein dummer Fehler… Vielen Dank:)

[quote=Gambos]Main.table.repaint();[/quote]DAs ist an dieser stelle 'ne ganz schlechte idee. Du bist doch dchon im “repaint” wenn diese codezeile abgearbeitet wird.
Darüber hinaus sind solche globalen Variablem per se als “böse” anerkannt.

bye
TT