2017-03-16 1 views
0

나는 tic tac toe 게임을 만들고 있는데, 어떻게하면 버튼을 특정 편지처럼 만들 수 있습니까? 버튼을 클릭하면 x로 이동하지만 다시 한 번 누르면 o로 이동합니다. 일단 고정시키고 일단 눌렀을 때 고정시키지 않으려면 어떻게해야합니까? 당신의 ActionListener에서버튼을 클릭하지 않는 방법은 무엇입니까?

import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class TicTacToeSample extends JFrame implements ActionListener 
{ 
    private JFrame game = new JFrame("TicTacToe"); 
    private JButton button1 = new JButton(""); 
    private JButton button2 = new JButton(""); 
    private JButton button3 = new JButton(""); 
    private JButton button4 = new JButton(""); 
    private JButton button5 = new JButton("");    
    private JButton button6 = new JButton(""); 
    private JButton button7 = new JButton(""); 
    private JButton button8 = new JButton(""); 
    private JButton button9 = new JButton(""); 
    private String letter = "X"; 
    private int count = 0; 
    private boolean win = false; 

    public TicTacToeSample() 
    { 
     game.setSize(300,300); 
     game.setDefaultCloseOperation(EXIT_ON_CLOSE); 
     game.setLayout(new GridLayout(3, 3)); 

     game.add(button1); 
     game.add(button2); 
     game.add(button3); 
     game.add(button4); 
     game.add(button5); 
     game.add(button6); 
     game.add(button7); 
     game.add(button8); 
     game.add(button9); 


     button1.addActionListener(this); 
     button2.addActionListener(this); 
     button3.addActionListener(this); 
     button4.addActionListener(this); 
     button5.addActionListener(this); 
     button6.addActionListener(this); 
     button7.addActionListener(this); 
     button8.addActionListener(this); 
     button9.addActionListener(this); 

     game.setVisible(true); 
    } 


     public void actionPerformed(ActionEvent event) 
     { 
      count++; 

      if (count == 1 || count == 3 || count == 5 || count == 7 || count == 1) 
      { 
       letter = "X"; 
      } 
      else if (count == 2 || count == 4 || count == 6 || count == 8 || count == 10) 
      { 
       letter = "O"; 
      } 

      if(event.getSource()== button1) 
      { 
      button1.setText(letter); 
      } 
      if(event.getSource()== button2) 
      { 
      button2.setText(letter); 
      } 
     } 




     public static void main(String[] paramArrayOfString) 
     { 
     TicTacToeSample board = new TicTacToeSample(); 
     } 
} 
+0

조치 수신기 제거 – ControlAltDel

+0

단추 사용 안함 – MadProgrammer

답변

2

는 ActionEvent의 매개 변수에 getSource()를 호출하여 누르면 버튼을 얻을. 텍스트가있는 경우 해당 텍스트를 확인하고 getText()을 호출하십시오. 텍스트가 있으면 변경하지 마십시오. 단순한.

관련 문제