我想让一个数字每 x 毫秒上升一次,但是 Thread.sleep() 一次完成

I want to make a number go up once every x milliseconds, but Thread.sleep() does it all at once

当我尝试在 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);
    }
}

事件侦听器始终在同一个线程上执行,即 AWT 事件调度线程 (EDT)。 GUI 还在该线程上重绘,因此在侦听器退出之前无法更新。

您应该使用 javax.swing.Timer 代替 Thread.sleepThread.sleep 应该很少使用。 Object.wait 通常更合适,这样线程可以被唤醒用于其他目的。

(您用 Object 中的方法重载了 wait,这充其量只是一件非常奇怪的事情。)