我正在将控制台应用程序转换为使用Swing的控制台应用程序.目前我希望我的程序能够做到类似的事情,.nextInt();我怎么能通过使用.getText();或类似的东西来实现这一点?
简而言之;
如何保持程序的执行,直到用户在文本字段中输入内容并按下回车键.
更新:所以你想等待用户从GUI输入内容.这是可能的,但需要同步,因为GUI在另一个线程中运行.
所以步骤是:
holder.wait())holder.notify())完整示例:
public static void main(String... args) throws Exception {
final List<Integer> holder = new LinkedList<Integer>();
final JFrame frame = new JFrame("Test");
final JTextField field = new JTextField("Enter some int + press enter");
frame.add(field);
field.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
synchronized (holder) {
holder.add(Integer.parseInt(field.getText()));
holder.notify();
}
frame.dispose();
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
// "logic" thread
synchronized (holder) {
// wait for input from field
while (holder.isEmpty())
holder.wait();
int nextInt = holder.remove(0);
System.out.println(nextInt);
//....
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7005 次 |
| 最近记录: |