[英]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.