我想在我的Java GUI应用程序中添加一个简单的圆形进度条,让用户了解有一些网络/下载应用程序。所以我想要的是这样的:
在代码中:
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 中初始化。
所以我的问题是:
您是否考虑过使用动画 GIF 或动画 PNG? 使用这些类型的图像,您可以显示图像并隐藏图像,无需任何花哨的东西,它会给您所需的动画。
我遇到了同样的问题,并在上面的评论的帮助下找到了实际的解决方案。 在 @Override Paint(Graphics g, JComponent c) 方法中,有一行计算“淡入淡出”值。 在计算之后,我立即补充道:
如果(淡出< 0f ) return;
问题就解决了;不再出现“alpha 值超出范围”错误。