Java Swing加载动画

我想通过java swing实现以下加载动画:

在此处输入图像描述

圆圈必须顺时针旋转。

制作它的最佳方法是什么?

非常感谢你。

您可以使用Animated Icon类使用现有图标创建自己的动画。

只需使用ImageIcon和动画gif。 请参阅ImageIcon中的setImageObserver 。

可以使用各种在线生成器(如AjaxLoad)来加载图标。

希望现在还不算太晚。

我设法通过这种方式在我的JPanel中获得动画gif:

private JPanel loadingPanel() { JPanel panel = new JPanel(); BoxLayout layoutMgr = new BoxLayout(panel, BoxLayout.PAGE_AXIS); panel.setLayout(layoutMgr); ClassLoader cldr = this.getClass().getClassLoader(); java.net.URL imageURL = cldr.getResource("img/spinner.gif"); ImageIcon imageIcon = new ImageIcon(imageURL); JLabel iconLabel = new JLabel(); iconLabel.setIcon(imageIcon); imageIcon.setImageObserver(iconLabel); JLabel label = new JLabel("Loading..."); panel.add(iconLabel); panel.add(label); return panel; } 

这种方法的一些要点:
1.图像文件在jar中;
2. ImageIO.read()返回一个BufferedImage,它不会更新ImageObserver;
3.找到捆绑在jar文件中的图像的另一种方法是询问Java类加载器,即加载程序的代码,以获取文件。 它知道事物的位置。

所以通过这样做,我能够在我的JPanel中获得我的动画gif,它就像一个魅力。

可以使用常规Java2D调用使用自定义组件或自定义图标绘制。 对我来说,它看起来像是一个Arc2D ,它有一个用GradientPaint绘制的相当厚的BasicStroke

或者,从Inkscape(或其他图形程序)导出帧并将其作为图像加载。