metoda repaint() nie działa po odebraniu elementu prze Socket

0

Hej mam problem z metodą repaint().
otóż za pierwszym razem działa ona poprawnie ale gdy odbiorę element z serwera typu Socket to metoda ta przestaje działać. A konkretniej sprawdzanie warunków w niej nie działa

public void paint(Graphics g) {
        super.paint(g);
        for (int i=0;i<8;i++){
            for(int j=0;j<8;j++){
                if (miejscaPionkow[i][j]  == "czerwone"){
                    g.setColor(Color.RED);
                    int x = listaPol.get(i).get(j).getX();
                    int y = listaPol.get(i).get(j).getY();
                    g.fillOval(x+10,y +30, 60, 60);
                }else if (miejscaPionkow[i][j] ==  "czarne"){
                    g.setColor(Color.BLACK);
                    int x = listaPol.get(i).get(j).getX();
                    int y = listaPol.get(i).get(j).getY();
                    g.fillOval(x+10,y +30, 60, 60);
                }else if (miejscaPionkow[i][j] == "czerwonaDamka"){
                    g.setColor(Color.RED);
                    int x = listaPol.get(i).get(j).getX();
                    int y = listaPol.get(i).get(j).getY();
                    g.fillOval(x+10,y +30, 60, 60);
                    g.setColor(Color.YELLOW);
                    g.drawOval(x+20, y+40, 40, 40);
                }else if (miejscaPionkow[i][j] == "czarnaDamka"){
                    g.setColor(Color.BLACK);
                    int x = listaPol.get(i).get(j).getX();
                    int y = listaPol.get(i).get(j).getY();
                    g.fillOval(x+10,y +30, 60, 60);
                    g.setColor(Color.YELLOW);
                    g.drawOval(x+20, y+40, 40, 40);
                }
            }
        }
    } 

od Serwera odbieram ten element "miejscaPionkow" i po jego odebraniu żaden warunek w paint nie jest spełniony i co za tym idze nic nie rysuje.
Tablica "miejscaPionkow" po odebraniu z serwera zawiera poprawne dane. NIe wiem czemu nie wchodzi mi w te if-y. Ktoś może ma jakis pomysł albo spotkał się z czymś podobnym?

1

Tak

(miejscaPionkow[i][j]  == "czerwone")

się nie porównuje Stringów. Zamień, na

(miejscaPionkow[i][j].equals("czerwone"))
0

z equals też próbowałem ale przy equals nic się nie zmienia

0

Na pewno?
"==" sprawdza czy referencje są takie same. a equals czy wartość jest taka sam. Więc w tym przypadku musisz użyć equals

jeszcze pokaż jak podpisujesz tablicę miejscePionkow bo to może być problem

0

Może wywołujesz repaint dla złego obiektu. Sprawdź czy wywoływana jest metoda paint:

public void paint(Graphics g) {
        super.paint(g);
        System.out.println("będę rysował");

1 użytkowników online, w tym zalogowanych: 0, gości: 1