java - 单击前一帧中的按钮后,如何在新帧中打开 JProgress 栏?

标签 java swing thread-sleep jprogressbar

这是我在单击上一帧上的按钮后打开的框架中实现的功能...进度条的框架很容易打开,但没有显示进度...请帮助我解决这个问题。

public void iterate() {
    while (num < 2000) {
        current.setValue(num);
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) { }
        num += 95;
    }
}

最佳答案

您的问题是您正在 Swing 事件线程上执行一段长时间运行的代码,这将使 Swing 事件线程以及整个 GUI 进入休眠状态。

解决方案是在后台线程中执行长时间运行的代码,例如可通过 SwingWorker 获得。 ,或者使用 Swing Timer提前你的数字并放弃 while (true) 和 Thread.sleep(...) 。

另请注意,您的第二个依赖窗口应该是一个对话框,例如 JDialog 或 JOptionPane,而不是另一个 JFrame。

关于java - 单击前一帧中的按钮后,如何在新帧中打开 JProgress 栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22208774/

相关文章:

java - Gradle 3.5 如何在 allproject 中从 archiveBaseName 设置 jar baseName

java - 使用 XPath 将元素保留在文本中

java - 在 JInternalFrame 中单击关闭 (X) 按钮时如何执行某些操作

java - 自定义布局 Swing 应用程序

java - 具有用于构建实体的内部类的实体

java - 使用java对api地址和json数据执行HTTP DELETE

java - Swing - MacOS 中 JDialog 的 native 外观

javascript - 如何在 HTML 脚本标记中使用 Javascript 对浏览器中的连续事件进行计时?

JAVA .wait() 用于在运行方法之前等待 android studio

java - 如何让 For 循环在线程结束后继续?