创建一个不错的“加载...”动画

2022-09-02 22:59:28

可能的重复:
JProgressBar的漂亮替代品?

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

我想避免使用典型的进度条,而使用像这样的漂亮的现代无限进度

infinite progress

我知道类似的问题,但这与Java Swing严格相关。有没有这方面的库或示例?


答案 1

只需将ImageIcon用于此任务,它会自动为gif添加动画效果。下面的代码产生了这个屏幕截图(ajax加载器.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);
}

答案 2

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

  • 使用 创建一个 。添加一个,其中包括您选择的动画.gif图标。JComponentBorderLayoutJLabelCENTER
  • (可选)重写该方法以使 GUI 显示为灰色(或变白)。为此,您需要绘制一个组件大小的填充矩形,用半透明颜色填充矩形。paint(Graphics)
  • 将组件添加为应用程序根框架的玻璃窗格。

推荐