我想在点击按钮时从GUIinput获取数据,我编写这段代码它获取数据然后进入无限循环
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
while(true){
try {
Thread.sleep(10000);
} catch (InterruptedException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("hello");
System.out.println(name.getText());
}
答案 0 :(得分:3)
我想在点击按钮
时从GUIinput获取数据
您在Thread.sleep(...)
上使用Event Dispatch Thread (EDT)
,这将阻止GUI响应事件,直到循环结束。
不要在EDT上使用Thread.sleep(...)!!!
有两种常见的解决方案:
SwingWorker
和"发布"结果每10秒钟一次。所以看看Swing Tutorial。您将找到以下主题:
How to Use Swing Timers
Concurrency in Swing
- 将解释有关EDT和SwingWorker的内容。答案 1 :(得分:0)
我不明白,问题名称说你想要你的数据每10秒然后你说你进入无限循环(???)
删除while(true)
以逃避无限循环