java - 在 Java Swing 中更改按钮文本时遇到问题
问题描述
我正在尝试测试通过 actionlistener 更改按钮文本的方法。这是我的代码:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TCTBack implements ActionListener {
JFrame frame;
JPanel panel;
JLabel label1;
JButton button1;
String turn;
public TCTBack() {
turn = "-";
panel = new JPanel();
panel.setSize(500, 500);
frame = new JFrame();
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
panel.setLayout(null);
label1 = new JLabel("Interactive Button Test");
label1.setBounds(10,20,80,25);
panel.add(label1);
button1 = new JButton("Button");
button1.setBounds(10,80,80,25);
button1.addActionListener(this);
panel.add(button1);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
switch (turn) {
case "-" -> {
turn = "X";
button1.setText("X");
}
case "x" -> {
turn = "O";
button1.setText("O");
}
case "O" -> {
turn = "-";
button1.setText("-");
}
}
}
public static void main(String[] args) {
new TCTBack();
}
}
它会更改一次按钮的文本,但在我再次单击该按钮后不会更改它。我的目标是能够将按钮的文本从默认值(“-”)更改为 X,然后更改为 O,然后再更改为 -。任何帮助将不胜感激,谢谢。另外,我是提问的新手,所以如果我遗漏任何信息,请告诉我。
解决方案
因为您将文本更改为X
但您检查它是否等于x
case "X" -> {
...
}
推荐阅读
- ruby-on-rails - 将 ruby on rails 添加到现有的 react native 应用程序
- node.js - 为 MongoDB 集合中的每个文档设置具有不同值的新字段
- html - Angular 中的 Bootstrap Essentials(Bootstrap 扩展)“不起作用”
- swift - 类实例的内存访问
- javascript - 尝试使用 document.queryselector 将事件侦听器添加到 onclick 事件不起作用
- php - 在 CakePhp 3.x 上将 Value 更新为 null
- python - 在 python 中用阴影区域绘制 95% 置信区间线图
- javascript - 在 normalizr 中重命名结果属性
- c# - 如何从 SQL 数据库获取整数值到 Windows 窗体(C#)中的变量?
- r - r中的if,else语句问题