你知道如何在for循环中等待用户的输入吗?我不是指 showAndWait()
方法,因为我没有为用户打开一个新的对话阶段。例如,for 循环的每一轮都应该等待用户按下按钮,然后再继续下一轮。
这怎么可能?非常感谢!
更新:
现在我想到,它可以与 while(buttonNotPressed){}
一起使用,但这是一个好的解决方案吗?我的意思是,在这种情况下, while 循环疯狂地运行,直到用户不会按下按钮。或者它的工作方式与等待方法类似吗?
将其想象为一个 session :
用户使用 handleStart()
开始 session 您一一向用户提出 5 个问题。在每次迭代中,用户都可以回答即将出现的问题,并且可以通过handleSaveButton()
保存或提交答案。您可以根据需要处理答案,然后继续进行下一次迭代。关键是,迭代必须停止,直到保存按钮未被按下。
最佳答案
别那样做。与任何事件驱动的 GUI 工具包一样,FX 工具包已经实现了一个循环,用于渲染场景图和处理每次迭代的用户输入。
只需向按钮注册一个监听器,然后在按下按钮时执行您需要执行的操作:
button.setOnAction(event -> {
// your code here...
});
如果您希望操作发生变化,只需在每次执行操作时更改某个变量的状态即可:
private int round = 0 ;
// ...
button.setOnAction(event -> {
if (round < 5) {
System.out.println("Round "+round);
System.out.println("User's input: "+textArea.getText());
round++ ;
}
});
关于javafx - 如何在JavaFX中等待用户的操作(在同一阶段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59329716/