gpt4 book ai didi

java - 加载另一个 JFrame 类的进度条

转载 作者:行者123 更新时间:2023-11-29 03:27:09 25 4
gpt4 key购买 nike

我有 2 个 JFrame:NewJFrameNewJFrame1NewJFrame 有一个进度条和一个按钮。该按钮用于调用 NewJFrame1。单击按钮时,它应触发进度条运行,直到 NewJFrame1 弹出。但是,我如何利用 swing worker 并让进度一直运行到 NewJFrame1 实际上完全加载了它的所有组件?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
SwingUtilities.invokeLater(new Runnable() {
int i = 0;
public void run() {
jProgressBar1.setValue(i++);
new NewJFrame1().setVisible(true);
}
});
}

最佳答案

让你的top-level container有一个 SwingWorker 加载它的内容,如图所示 here和一个 PropertyChangeListener,如图所示 here .当 doInBackground() 调用 setProgress() 时,监听器将看到该事件。

附录:我们如何知道 GUI 完全加载还剩多少时间? …在示例中,进度条以随机数作为模拟延迟运行

正确;模拟延迟表示加载的粒度。显示加载的总字节数的分数是理想的,但您可能不得不接受更粗略的频率。请注意,模型可能在后台构建,任何组件正在监听之前。 GUI 组件应该只在 EDT 上构造和操作,可能在工作人员的 process() 实现中。

关于java - 加载另一个 JFrame 类的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20443437/

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