gpt4 book ai didi

java - 从另一个类访问时重绘进度条

转载 作者:行者123 更新时间:2023-11-29 05:31:00 25 4
gpt4 key购买 nike

我有一个主类,它有一个 JProgressBar。在主类中,我创建了一个类的实例(名为 Opener),它有一个方法可以读取通常很大的文本文件(>50000 行文本)。

我将 JProgressBar 的引用传递给读取 txt 文件的 Opener 类的方法,以便可以从 Opener 类访问进度条。

方法定义如下:

 public void readtxtfile (JProgressBar myjProgressBar){....}

我这样调用方法:

 Opener myopener = new Opener();
myopener.readtxtfile (jProgressBar1);

我知道对进度条的引用工作正常,因为我可以从那里将其设置为可见(创建主类时,进度条设置为不可见)。

readtxtfile 方法中,我在读取 txt 文件时更改了进度条的值。

 myjProgressBar.setValue(mycounter);
myjProgressBar.revalidate();
myjProgressBar.repaint();

我的问题是进度条不会随着其值的变化而重新绘制。我该怎么办?

附言:当txt文件全部读取完成后,进度条终于刷新了。但是意味着它没有任何可见的事情发生。

最佳答案

这听起来更像是您试图从事件调度线程中读取文件,从而阻止它执行任何重绘。

可能最好的选择是使用 SwingWorker 在后台运行并加载文件的内容,并使用它的属性更改支持来更新进度。

看看Worker Threads and SwingWorker详情

看看thisthis例如

关于java - 从另一个类访问时重绘进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086267/

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