繁体   English   中英

Java Swing等待按钮单击

[英]Java swing wait for button click

如何添加等待jButton1单击以继续的功能?

我有以下代码:

while (gameStatus == Status.CONTINUE){
    ////here add wait for jButton1 click  
    sumOfDice = rollDice(); // roll dice again
}

我已经做到了,但是没有用:

        while (gameStatus == Status.CONTINUE) { 

        jButton1.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e, int sumOfDice) {
                sumOfDice = rollDice();

            }
        });

您将线性命令行编程与事件驱动的GUI编程混为一谈,但这是行不通的。 您需要在事件发生时对事件进行响应,而不是在执行过程中等待,而如何响应将取决于程序的状态(实际上是模型的状态)。

请注意,这不会编译:

    jButton1.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e, int sumOfDice) {
            sumOfDice = rollDice();

        }
    });

由于actionPerformed是一种覆盖的方法,只能接受一个参数

更好的做法是:

    jButton1.addActionListener(new ActionListener() {
        private int sumOfDice = 0;

        @Override // don't forget this important annotation
        public void actionPerformed(ActionEvent e) {
            if (gameStatus == Status.CONTINUE) {
               sumOfDice = rollDice();
            }
        }
    });

有关更详细和具体的答案,请考虑发布有关您的问题的更多详细信息以及相关代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM