【发布时间】:2014-07-17 14:37:36
【问题描述】:
我有一个加载过程需要几秒钟,我想在 Java Swing 中创建一个动画,直到它完成加载。
我想避免使用典型的 ProgressBar 并使用像这样的漂亮的现代无限进度
我知道类似的问题,但这与 Java Swing 严格相关。 有没有这方面的库或示例?
【问题讨论】:
我有一个加载过程需要几秒钟,我想在 Java Swing 中创建一个动画,直到它完成加载。
我想避免使用典型的 ProgressBar 并使用像这样的漂亮的现代无限进度
我知道类似的问题,但这与 Java Swing 严格相关。 有没有这方面的库或示例?
【问题讨论】:
只需为此任务使用ImageIcon,它会自动为 gif 设置动画。下面的代码生成了这个屏幕截图(ajax-loader.gif 是从 http://www.ajaxload.info/ 下载的):
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);
}
【讨论】:
我建议将玻璃板用于此类活动。涉及的步骤是:
BorderLayout 创建一个JComponent。将 JLabel 添加到 CENTER,其中包括您选择的动画 .gif 图标。paint(Graphics) 方法以使您的GUI 显示为灰色(或变白)。为此,您需要绘制一个与组件大小相同的填充矩形,并用半透明颜色填充该矩形。【讨论】: