带秋千的井字游戏 - X 和 O 的不同颜色

我想为不同的玩家定制颜色;“X”和“O”。我初始化电路板的代码在这里,我不明白为什么它不起作用。运行程序时,X 和 O 都是蓝色的,即使我添加了 if/else if 循环也是如此。


private void initializeBoard() {

for(int i = 0; i < 3; i++) {

  for(int j = 0; j < 3; j++) {

    JButton button = new JButton();

    button.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 100));

    if(currentPlayer.equals("X")) {

      button.setForeground(Color.BLUE);

    }

    else if (currentPlayer.equals("O")) {

      button.setForeground(Color.RED);

    }

    board[i][j] = button;

    button.addActionListener(new ActionListener() {


      @Override

      public void actionPerformed(ActionEvent e) {

        if(((JButton)e.getSource()).getText().equals("") &&       

        hasWon == false) {

          button.setText(currentPlayer);

          hasWon();

          choosePlayer();

        }

      }

    });

    pane.add(button);

  }

}

}


如果语言不打扰您,您可以在我的 GitHub 上查看整个代码(我在这里将一些内容翻译成英语,但在我的代码中我使用了挪威语):https : //github.com/ibrarnaseer/Tic-Tac-Toe /树/主人


慕田峪7331174
浏览 141回答 1
1回答

弑天下

看起来问题出在您设置前景色的位置。你需要把它设置在里面,ActionListener因为你知道选择那个位置的玩家是谁。像这样的东西:private void initializeBoard() {&nbsp; &nbsp;for(int i = 0; i < 3; i++) {&nbsp; &nbsp; &nbsp; for(int j = 0; j < 3; j++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;JButton button = new JButton();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;button.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 100));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;board[i][j] = button;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;button.addActionListener(new ActionListener() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void actionPerformed(ActionEvent e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(((JButton)e.getSource()).getText().equals("") &&&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hasWon == false) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; button.setText(currentPlayer);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(currentPlayer.equals("X")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;button.setForeground(Color.BLUE);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else if (currentPlayer.equals("O")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;button.setForeground(Color.RED);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hasWon();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; choosePlayer();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;});&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pane.add(button);&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java