我有一个GUI问题需要解决,但我对发生的事情感到困惑,希望你们中的一位能够解释一下。代码库过于庞大,无法上传,但我会详细说明发生了什么:
我有一个名为“ProgressBar”的类,它是一个包含Swing JProgressBar的JDialog。我有一些getter和setter来更改进度条以符合我的喜好,然而问题来了。
ProgressBar在方法“myButtonActionPerformed”中生成。
我有一个名为“ProgressBar”的类,它是一个包含Swing JProgressBar的JDialog。我有一些getter和setter来更改进度条以符合我的喜好,然而问题来了。
ProgressBar在方法“myButtonActionPerformed”中生成。
myButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
myButtonActionPerformed(evt);
}
});
当用户点击此按钮时,处理过程开始并生成 ProgressBar
。
用户当前在一个 JFrame
前面,进度条会弹出在一个 JDialog
中。在 Netbeans 的调试模式中,我可以看到 JProgressBar
的值被改变了,但是当程序正在处理时,进度条的视觉效果仍然停留在 0%,然后在离开上面的 add action listener 方法时立即跳到 100%,就好像它在等待重绘直到离开该监听器。我没有理解什么?有没有什么方法可以在这个 myButtonActionPerformed
方法内部强制更新它,而不是等到它无用为止。
SwingWorker
。抱歉。而且,我想那个链接会引导你朝着正确的方向前进。 - Joey