【发布时间】:2021-01-20 10:19:32
【问题描述】:
当我尝试在 jFrame 中执行此代码时:它不是每 100 毫秒添加一个从 0 到 10 的数字,而是等待 1 秒并一次添加所有数字?
任何帮助将不胜感激。
public static void wait(int milliseconds) {
try {
Thread.sleep(milliseconds);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
for (int i = 0; i <= 10; i++) {
wait(100);
jTAOut.append("" + i);
}
}
【问题讨论】:
-
您在线程中休眠,您的 GUI 正在运行(事件调度线程)。你不应该这样做,因为它会冻结 GUI,就像你描述的那样。看看this answer,它更详细地介绍了如何避免这种情况。