java - 如何将信息从重写的 ActionListener 方法发送到 Java 中的 main 方法?

标签 java swing actionlistener overriding

基本上,我是一个新手,创建了一个程序,该程序会给出问题,随机化正确答案的索引,然后在 JFrame 中显示问题。 我可以轻松执行添加到此 ActionListener 方法中的任何任务:

@Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("1")) {
            System.out.println("whatever");
            JOptionPane.showMessageDialog(null, "correct!", 
                "", JOptionPane.PLAIN_MESSAGE);
        } else {
        JOptionPane.showMessageDialog(null, "wrong!", 
                "", JOptionPane.PLAIN_MESSAGE);
    }
}

程序从主方法中给出的 setActionCommand 中获取“1”,但我希望监听器返回到主方法,当单击正确的单选按钮时,也会显示下一个问题。 主要方法如下:

while (therearestillquestionsleft) { /* do everything */ }

所以我需要程序在循环中等待,直到单击正确的答案。 我怎样才能实现这一目标?

最佳答案

正如其他人指出的那样,循环等待并不是处理 Java 中等待 GUI 用户输入的方法。

您可以重新设计您的程序,使其看起来像这样:

public static void main(String args[]) {
    // [...]
    nextQuestion();
}

public static void nextQuestion() {
    if (questionsLeft) {
        // "do everything", i.e. show next question
    }
}

然后,您只需从 ActionListener 中调用 nextQuestion() 即可。

关于java - 如何将信息从重写的 ActionListener 方法发送到 Java 中的 main 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16178080/

相关文章:

java - 更改 ListView 项的颜色

java - 指定对 DAO 方法的排序

java - 使用 CardLayout 切换面板

java - 在 setOnCheckedChangeListener 方法内执行 Toast 消息

java - 什么是更好的? if..else 或多个简单的 if

java - UnboundID LDAP 和 Squid 代理

Java SE - 自定义按钮(Jcomponent)和 ActionListener?

java - 关于制作某种格式的JAVA GUI的问题

java - JButton 按下(不释放)

java - 如何让按钮setText hibernate ?