Java中的圆形进度条显示

问题描述 投票:0回答:2

我想在我的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)

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

所以我的问题是:

  1. 有没有什么很简单的方法可以让圆条出现和消失?
  2. 如何解决我使用该解决方案面临的问题?
java swing
2个回答
3
投票

您是否考虑过使用动画 GIF 或动画 PNG? 使用这些类型的图像,您可以显示图像并隐藏图像,无需任何花哨的东西,它会给您所需的动画。


0
投票

我遇到了同样的问题,并在上面的评论的帮助下找到了实际的解决方案。 在 @Override Paint(Graphics g, JComponent c) 方法中,有一行计算“淡入淡出”值。 在计算之后,我立即补充道:

如果(淡出< 0f ) return;

问题就解决了;不再出现“alpha 值超出范围”错误。

© www.soinside.com 2019 - 2024. All rights reserved.