【发布时间】:2021-05-09 10:16:44
【问题描述】:
我有一个名为“Text”的 Java 类,它使用 swing 来创建 2 个文本框。其中有一个侦听器将文本从第一个框复制到第二个框的末尾。到目前为止,我已经将它设置为其他类可以调用函数以将文本输出到第二个框的位置。
我想要做的是有一个函数让程序等到用户输入一个文本字符串并按下回车键(这将触发我已经拥有的事件侦听器),然后将该文本字符串返回到用户。
我尝试做类似的事情:
String lastInput;
boolean waiting;
public void actionPerformed(ActionEvent evt) {
String text = textField.getText();
println(text);
lastInput = text;
waiting = false;
parse(text);
textField.selectAll();
}
public String get() {
waiting = true;
while(waiting){}
return lastInput;
}
但这只会导致程序冻结而不注册任何输入(包括在文本框中输入的任何内容)。我很确定我需要使用 java 的线程系统,但是我以前从未使用过它,而且我在网上找不到任何关于如何使用它来解决这个问题的信息。
谢谢!
【问题讨论】:
标签: java swing asynchronous events io