gpt4 book ai didi

java - 设置 JProgressBar

转载 作者:行者123 更新时间:2023-12-01 18:06:18 25 4
gpt4 key购买 nike

我正在使用 javax.swing 为一个小应用程序构建 GUI。一切工作正常,但我只是有一点疑问。我想使用 JProgressBar 来指示进程导出正在运行。由于Post类本身实现了Runnable,如果在run()之后调用setIndependent(),它甚至会在export()之前执行 结束了,Java 将其放入另一个线程 中。

有谁知道如何解决这个问题吗?

    this.jProgressBar2.setIndeterminate(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {

Post post = new Post();
post.export();
}
});

this.jProgressBar2.setIndeterminate(true);

最佳答案

您的问题是,由于 post.export() 正在后台线程中运行(我假设),因此您的代码不会阻塞,并且 run 方法之后的代码将立即被调用。

建议:

  • 删除 SwingUtilities.invokeLater(new Runnable() { 语句,因为代码已经在 Swing 事件线程上运行,因此这不会执行任何操作。
  • 您需要一些通知机制来通知帖子何时完成导出。为 Post 提供一个 SwingPropertyChangeSupport 对象,以及一个 addPropertyChangeListener(...) 方法,该方法允许外部类(此处为 GUI)添加 PropertyChangeListener,并将其与 beans 绑定(bind)一起使用以及 PropertyChangeListener 来通知 GUI当处理完成时。这是通过在导出完成时在支持对象上调用适当的 firePropertyChange(...) 来完成的。

关于java - 设置 JProgressBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36187507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com