Java中的循环进度条用于显示

4
我想在我的Java GUI应用程序中添加一个简单的圆形进度条,以便让用户了解正在进行网络/下载应用程序。因此,我想要像下面这样的东西:

enter image description here

代码示例:
waitingBar.start(); 
myLongOperation();
waitingBar.stop();

我找到了这个解决方案,它应该很适合布局,但是它不起作用,因为我遇到了这个问题:

线程"AWT-EventQueue-0"中的异常java.lang.IllegalArgumentException:alpha值超出范围 在java.awt.AlphaComposite.(AlphaComposite.java:618) 在java.awt.AlphaComposite.getInstance(AlphaComposite.java:683) 在gui.WaitLayerUI.paint(WaitLayerUI.java:41)

我有一个外部类,在longOperation()之前调用start()方法,然后执行stop()方法。JFrame直接在Main中初始化。

所以我的问题是:

  1. 有没有什么非常简单的方法可以使圆形进度条出现和消失?
  2. 我如何解决我遇到的问题?

1
似乎您正在为任何组件设置颜色,这可能导致错误,因为它超出了正常颜色范围。 - SomeJavaGuy
"alpha value out of range" - 所以请修复这个问题。不要让alpha值超出范围。这里是Swing教程链接,有关使用JLayer装饰组件的内容:http://docs.oracle.com/javase/tutorial/uiswing/misc/jlayer.html - camickr
他们忘记在stop()方法中将mIsRunning设置为false。只需添加这个,并且IllegalArgumentException: alpha value out of range就会消失。 - andronix
1个回答

3

您是否考虑使用动态GIF或动态PNG?这些类型的图像可以在没有任何花哨的东西的情况下显示和隐藏图像,并为您提供所需的动画效果。


这是一个可能的解决方案,但我发布的那个非常好,因为它添加了一个覆盖层作为背景。 - I love coding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接