ProgressBar不会在Java中更改其值

ProgressBar不会在Java中更改其值,第1张

ProgressBar不会在Java中更改其值

进度栏的值实际上已更新。但这还不只是在屏幕上。通常,我们在循环中使用进度条。但是,当您处于循环中时,您可能 通过单击按钮来调用
该循环,但该循环没有被绘制。为什么?因为您通过单击按钮来调用它。当您单击一个按钮时,您为该按钮编写的所有代码都将由来执行

AWTEventThread
。这是跟踪所有Swing组件并检查是否需要重新绘制的同一线程。那就是使您的Jframe活跃起来的线程。当您将鼠标悬停在某个按钮上并且颜色发生一些变化时,该 *** 作由来完成
AWTEventThread

因此,在循环中工作时,AWTEventThread无法再更新屏幕。

这意味着有两种解决方案:

  1. (推荐)您应该创建一个单独的线程来执行循环。这意味着AWTEventThread可以根据需要更新屏幕(调用时

    bar.setValue(...);

    public void yourButtonClickMethod()

    {
    Runnable runner = new Runnable()
    {
    public void run() {
    //Your original pre with the loop here.
    }
    };
    Thread t = new Thread(runner, “Code Executer”);
    t.start();
    }

  2. 手动重新绘制进度条。我一直都这样做,

    bar.repaint();
    但是我想知道它是否会起作用。我就是那个方法。如果不行,请尝试:
    bar.update(bar.getGraphics());



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5601561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存