我想在单击按钮时从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());
}
我想单击按钮时从GUIinput获取数据
您正在上使用Thread.sleep(...)
,Event Dispatch Thread (EDT)
这将阻止GUI响应事件,直到循环完成为止。
不要在EDT上使用Thread.sleep(…)!
有两种常见的解决方案:
SwingWorker
每10秒使用一个结果并“发布”。因此,请查看Swing教程。您将找到有关以下主题:
How to Use Swing Timers
Concurrency in Swing
-将解释有关EDT和SwingWorker的信息。我想每10秒执行一段代码。我在这个论坛上找到了一个例子,但我的实现有一些问题。 我得到这个错误,指向:
问题内容: 我有以下Python Tkinter代码,该代码每10秒重绘一次标签。我的问题是,对我而言,似乎是一遍又一遍地在旧标签上绘制新标签。因此,最终,几个小时后,将有数百个图纸重叠(至少从我的理解来看)。这会占用更多内存还是会引起问题? 在我的示例中,我仅使用一个标签。我知道可以用来更新标签甚至是文本。但是实际要做的是刷新标签(如表格),按钮和填充物的网格,以与可用的最新数据相匹配。 从我了
问题内容: 使用它可以在指定的时间启动功能: 但是,如果我想多次启动该功能怎么办?每次经过一个时间间隔,我都想执行该功能(假设每60秒执行一次)。 问题答案: 如果您不在乎内的代码是否可能花费比您的间隔更长的时间,请使用: 一遍又一遍地触发作为第一个参数传入的函数。 更好的方法是与函数一起使用: 这样可以保证在执行代码之前不会进行下一个调用。在本示例中,我将其用作函数参考。这是给函数命名并在其中调
问题内容: 我有一个C#Windows窗体,其中包含几个文本框和按钮。它还具有显示sql表的datagrid视图。我创建了一个刷新按钮,使我可以刷新表,以便可以看到表中的更新项。我想知道有没有办法自行刷新表。就像每10秒一次,或者代替表格,也许每10秒就会自动加载或刷新整个表格吗? 问题答案: 使用Timer控件,它调用了UI线程,并且可以通过表单设计器使用该控件。
问题内容: 我想每0.5秒触发一次功能,并且能够启动,停止和重置计时器。我不太了解Python线程的工作方式,并且在使用python计时器时遇到了困难。 但是,当我执行两次时,我会不断得到帮助。有没有解决的办法?我尝试在每次开始之前申请。 伪代码: 问题答案: 最好的方法是一次启动计时器线程。在计时器线程中,你需要编写以下代码 然后,在启动计时器的代码中,可以停止事件来停止计时器。
问题内容: 我有一个这样构造的mysql反馈数据库: 名称| 位置| 反馈 瑞安| 英格兰| 大力支持 显然,条目更多。我正在尝试建立一个反馈div,它通过ajax每10秒显示一个新的反馈项。 所以我构造了这个: 这是我的PHP文件: 但是,这仅显示两个。它不会一直显示新的,而是纯粹显示第一个然后显示第二个并停止。 我究竟做错了什么?谢谢 :) 问题答案: 你想做一个吗? 要么: 或者,如果您希望