gpt4 book ai didi

关于单击时更改按钮的 Java ActionListener

转载 作者:行者123 更新时间:2023-12-01 10:09:42 24 4
gpt4 key购买 nike

package tictactoe;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TicTacToe extends JFrame implements ActionListener {
JPanel mainPanel=new JPanel();
JButton[] buttons=new JButton[9];
public TicTacToe()
{
super("Tic Tca Toe");
setSize(400,400);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLookAndFeel();
mainPanel.setLayout(new GridLayout(3,3,5,5));
for(int i=0;i<9;i++)
{
buttons[i]=new JButton();
buttons[i].addActionListener(this);
mainPanel.add(buttons[i]);
}

add(mainPanel);
setVisible(true);
}
private void setLookAndFeel()
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
}catch(Exception e)
{

}
}

public void actionPerformed(ActionEvent event)
{


}
public static void main(String[] args)
{
new TicTacToe();
}

}

问题是我想要做到这一点,以便当我在顶部制作的按钮被单击时,如果您继续单击,则内部文本会从空白更改为 X 到 O 到空白,因此它会循环显示这 3 个状态,但我无法弄清楚有什么帮助吗?

最佳答案

您可以使用 if-else 语句来做到这一点。

public class TicTacToe extends JFrame implements ActionListener {

public static final String X = "X";
public static final String O = "O";

.
.
.

public void actionPerformed(ActionEvent event) {
JButton button = (JButton) event.getSource();

if (button.getText().isEmpty()) {
button.setText(X);
} else if (button.getText().equals(X)) {
button.setText(O);
} else {
button.setText("");
}
}
}

关于关于单击时更改按钮的 Java ActionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36208121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com