【发布时间】:2012-11-18 07:23:39
【问题描述】:
帮我解答这个问题。 我想在按钮单击时添加一个进度条,并且在进度条运行时主窗口(框架)应该关闭或隐藏。随着进度的完成,应该会出现主窗口。
【问题讨论】:
-
查看来自 Oracle 的 progress bar tutorial
标签: java swing progress-bar frame buttonclick
帮我解答这个问题。 我想在按钮单击时添加一个进度条,并且在进度条运行时主窗口(框架)应该关闭或隐藏。随着进度的完成,应该会出现主窗口。
【问题讨论】:
标签: java swing progress-bar frame buttonclick
有两种直接方式(在 API 中实现)
注意 Swing GUI 不是线程安全的,所有到 Swing GUI 的输出都必须在 Event Dispatch Thread (EDT) 上完成
【讨论】:
您可以在这里找到一个包含完整工作代码的示例:
http://www.roseindia.net/java/example/java/swing/SwingProgressBar.shtml
您只需要添加一个mainframe.setVisible(false); 和一个mainframe.setVisible(true); 即可,其中mainframe 是您的主要JFrame。您可以在“创建计时器”部分使用新的if (i==0) 和现有的if (i==20) 语句进行此修改。而不是根据您的需要删除或修改其余代码。
【讨论】:
Timer 确保更新在 EDT 内执行,但实际上并没有展示如何有效地运行后台任务以免阻塞 EDT 并将进度更新调用同步到 EDT