创建一个漂亮的“加载......”动画

时间:2011-10-03 11:33:43

标签: java animation loading

  

可能重复:
  Pretty alternative to JProgressBar?

我有一个需要几秒钟才能加载的进程,我想在Java Swing中创建一个动画,直到它完成加载。

我想避免使用典型的ProgressBar并使用像这样的现代无限进展

infinite progress

我知道类似的问题,但这与Java Swing有关。 是否有任何库或示例?

3 个答案:

答案 0 :(得分:38)

只需使用ImageIcon执行此任务,即可自动为GIF设置动画。以下代码生成了此屏幕截图( ajax-loader.gif已从http://www.ajaxload.info/下载):

screenshot

代码:

public static void main(String[] args) throws Exception {
    JFrame frame = new JFrame("Test");

    ImageIcon loading = new ImageIcon("ajax-loader.gif");
    frame.add(new JLabel("loading... ", loading, JLabel.CENTER));

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 300);
    frame.setVisible(true);
}

答案 1 :(得分:9)

我建议使用玻璃板进行此类活动。涉及的步骤是:

  • 使用JComponent创建BorderLayout。在JLabel添加CENTER,其中包含您选择的动画.gif图标。
  • (可选)覆盖paint(Graphics)方法,使GUI显示为灰色(或白色)。要实现这一点,您需要绘制一个填充矩形组件的大小,用半透明的颜色填充矩形。
  • 将组件添加为应用程序根框架的玻璃板。

答案 2 :(得分:3)

当然有可能。您可以使用工具AjaxLoad生成动画图像,该图像可以在任何图像/ html容器中使用。