java - ActionListener - 跟踪是否在 actionPerformed 方法内调用了 actionPerformed?

标签 java swing event-handling actionlistener

假设我有一个带有 SelectPieceListener 的“选择”JButton。 我想检查是否再次执行该操作(单击选择按钮)。 但是,actionPerformed 是 void,所以我不能将它用作 boolean 表达式。

有什么办法可以做到这一点吗? 或者使用另一个 JButton 来处理这个更好?

谢谢。

public class SelectPieceListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        if(c == _st.checkMoveImpossible()) {
            System.out.println("No possible move for "+nextPlayer+": click select to skip turn, " +
                    "or click right to move " + t + " pieces.");

            if(**the action is performed**){_board.setcmi(1);}
            _board.update();
        }

最佳答案

您想知道选择按钮是否已经被单击过一次 (1) 吗?或者您想确保不会递归调用 actionPerformed 方法 (2)?

(1) 只需向 SelectPieceListener 添加一个名为“selectPressed”(或其他名称)的 boolean 字段,并在调用 actionPerformed 时将其设置为 true。

(2) 不用担心,您似乎没有手动调用它。

关于java - ActionListener - 跟踪是否在 actionPerformed 方法内调用了 actionPerformed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824379/

相关文章:

带有用户输入击键的 Java Switch

java - 如何从新帧调用上一帧,如何再次设置可见?

jquery - 根据文本框更改更新字段 jQuery

javascript - 当一个元素被添加到页面时,我如何得到通知?

java - Avro 字段名称以数字/整数开头

客户端服务器应用程序中的 Java 连接被拒绝

java - 如果不扩展 JFrame 需要做出调整吗?

java - 无法传递在 "public void actionPerformed(ActionEvent event)"中声明的变量

java - 处理程序类 public java.lang.String com.emusicstore.controller.admin.AdminHome.adminPage() 上的映射无效

java - 递归方法打印字符串并递减1并为每个递归删除1个字母