JButton方法我找不到

时间:2016-05-19 05:45:17

标签: java computer-science

我目前正在制作一个TicTacToe游戏作为个人项目,到目前为止,我知道我几乎完成游戏,除了我必须检查x或o是否相等的部分。线。这是我下面的代码。我的问题在于连接方法,它编译并运行,但是当我尝试在仅按下一个JButton之后添加中间水平行时,它表示该人赢了但不应该是这种情况。我想我需要一个名为isDisabled()的方法,而不是JButton的isEnabled,但出于某种原因我不认为java库中有这样的方法。我确定我是否有isDisabled()它肯定会起作用

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * Created by Usman on 5/17/2016.
 */
public class TicTacToeGUI extends JPanel {

    boolean turn = true;
    JButton[] board;

    public TicTacToeGUI() {
        setLayout(new GridLayout(3,3));

        board = new JButton[9];
        for (int i = 0; i < board.length; i++) {
            board[i] = new JButton("");
            board[i].setPreferredSize(new Dimension(70, 60));
            board[i].setFont(new Font("Arial", Font.PLAIN, 40));
            int finalI = i;
            board[i].addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {

                    if(board[finalI].isEnabled()){
                        if(turn){
                            board[finalI].setText("X");
                            turn = !turn;
                        }
                        else{
                            board[finalI].setText("O");
                            turn = true;
                        }
                        board[finalI].setEnabled(false);
                    }
                    Connected();
                }
            });
            add(board[i]);
        }
    }
    public void Connected(){
        int count =0;
        //Horizontal top row
        if((board[0].isEnabled() == board[1].isEnabled()) && (board[1].isEnabled() == board[2].isEnabled())){
            System.out.println(count++);
            for(int i = 0; i < board.length; i++)
                board[i].setEnabled(false);
        }
    }
    public static void main(String []args){
        TicTacToeGUI game = new TicTacToeGUI();
        JFrame frame = new JFrame("Tic Tac Toe");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(game);
        frame.pack();
        frame.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:0)

只需使用(!whatever.isEnabled())

即可

角色&#39;!&#39;类似于Java中的NOT。所以它的行为就像是isDiabled()