ActionListener i "przesunięcie piona"

0

Witam serdecznie,

mam problem z buttonami przy zabawie z GUI.

Pragne zrobić warcaby. Jak na razie cała plansza jest już wypełniona odpowiednio pionami i problem napotkałem przy ruchu. Przy każdym kliknięciu wstawiam sobie nowy pion, lecz teraz chciałbym zrobić tak, aby po kliknięciu na button dane z niego się zachowały i dopiero przy następnym kliknięciu został on wyzerowany (Chodzi na ten czas o ustawienie dla niego SetText("")

    private void makeMove(ActionEvent a)
    {
      String czychar = null; 

      JButton current;
      JButton currentold = null;

          for(int i = 0; i < button.length; i++)
      {
        
          for(int j = 0; j < button[0].length; j++)
          {
            
              if(a.getSource() == button[i][j])
              {
                  currentold = button[i][j];}}}
          
          for(int i = 0; i < button.length; i++)
      {
        
          for(int j = 0; j < button[0].length; j++)
          {
            
              if(a.getSource() == button[i][j])
              {
                  current = button[i][j];
                  czychar = current.getText();
                  currentold.setText("");
                  if(czychar == "") Move.setText("Nie zaznaczyłeś piona");
                  if(czychar != "") Move.setText("Wskaż miejsce piona");
                  current.setFont(new Font("SansSerif",Font.BOLD,50));
                  if(playerInt == 1){ current.setText(playerChar);
                  
                  current.setForeground(Color.black);}
                  
                  if(playerInt == 2){ 
                  
                  current.setText(playerChar);
                  current.setForeground(Color.white);}
                  //current.setText(playerChar);
                  current.setEnabled(true);
                  //sprawdzenie czy jest wygrana
                  //checkForWinner();
                  }


Problem w tym, że nie widzi mi tej pierwszej akcji i currentold, aby w następnej został on wyzerowany. 
Proszę o pomoc jak to moge rozwiązać. Chodzi o zwykłe przesunięcie piona
                  
              }
          }
    }
0

Zmień currentold ze zmiennej lokalnej metody makemove na pole w klasie.
Btw, zamiast tych podwójnych pętli wystarczy

currentold = (JButton)(a.getSource());

Na dodatek, źle porównujesz Stringi, zamiast

if(czychar == "") Move.setText("Nie zaznaczyłeś piona");
//powinno być
if(czychar.equals("")) Move.setText("Nie zaznaczyłeś piona"); 
//tak można porównywać dowolne Stringi
//porównanie z pustym Stringiem, można zrobić tak
if(czychar.isEmpty()) Move.setText("Nie zaznaczyłeś piona");

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