私は個人的なプロジェクトとして現時点ではTicTacToeゲームに取り組んでいますが、これまでのところ私はxやoは一直線に並んでいる。ここに私のコードはここにあります。私の問題は接続されたメソッドでコンパイルされて実行されますが、JButtonが1つだけ押された後に中間の水平行を追加しようとすると、その人は勝てないと言いました。私は、JButtonのisEnabledの代わりにisDisabled()という名前のメソッドが必要だと思うが、何らかの理由で、そのようなメソッドがJavaライブラリにないと思う。私は(isDisabledていた場合、私はそれだけで(!whatever.isEnabled())
JButtonメソッド私は見つけることができません
文字を使用してください
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);
}
}
'isDisabled'は' isEnabled'の否定、つまり '!isEnabled()' ... – computerfreaker