2017-03-16 11 views
0

私はチックタックつま先のゲームを作っています。どのようにボタンを特定の文字のようにするのですか?ボタンをクリックするとxに移動しますが、もう一度押すとoに移動します。固定されていて、それが押されたらそれを作らないようにするにはどうしたらいいですか?ボタンをクリックしないようにする方法は?

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

ActionListenerで、ActionEventパラメータでgetSource()を呼び出して、押されたボタンを取得します。テキストがある場合は、getText()を呼び出してテキストを確認してください。テキストがある場合は変更しないでください。シンプル。

関連する問題