欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java jframe 运行_java – 使用JProgressBar运行JFrame

发布时间:2025/4/5 编程问答 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java jframe 运行_java – 使用JProgressBar运行JFrame 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

你有一个经典的并发和Swing问题.您的问题是您在主Swing线程,EDT或事件调度线程上执行长时间运行的任务,这将锁定线程,直到该过程完成,从而阻止它执行其任务,包括与用户交互和绘制GUI图形.

解决方案是在后台线程中执行长时间运行的任务,例如SwingWorker对象给出的.然后,您可以通过SwingWorker的发布/进程对更新进度条(如果是决定因素).有关这方面的更多信息,请阅读Concurrency in Swing上的这篇文章.

例如.,

public void myMethod() {

final MyProgessBarFrame progFrame = new MyProgessBarFrame();

new SwingWorker() {

protected Void doInBackground() throws Exception {

// do some processing here while the progress bar is running

// .....

return null;

};

// this is called when the SwingWorker's doInBackground finishes

protected void done() {

progFrame.setVisible(false); // hide my progress bar JFrame

};

}.execute();

progFrame.setVisible(true);

}

此外,如果从另一个Swing组件显示它,那么您应该显示模态JDialog而不是JFrame.这就是我在SwingWorker代码之后在窗口上调用setVisible(true)的原因 – 这样如果它是一个模态对话框,它就不会阻止SwingWorker被执行.

总结

以上是生活随笔为你收集整理的java jframe 运行_java – 使用JProgressBar运行JFrame的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。