【问题标题】:Creating a nice "LOADING..." animation [duplicate]创建一个漂亮的“加载...”动画[重复]
【发布时间】:2014-07-17 14:37:36
【问题描述】:

可能重复:
Pretty alternative to JProgressBar?

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

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

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

【问题讨论】:

标签: java animation loading


【解决方案1】:

只需为此任务使用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);
}

【讨论】:

  • Doh,没有检查重复数据:P
  • 感谢您的代码。抱歉重复发帖!
  • 隐藏窗口菜单并使其透明如何?我认为这就是他的意思,而不是简单地在窗口内显示一个图标。
【解决方案2】:

我建议将玻璃板用于此类活动。涉及的步骤是:

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

【讨论】:

  • +1 duplicate 的良好合并候选者。
  • 添加一个小代码示例?
【解决方案3】:

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

【讨论】:

  • 反对者愿意分享他们的理由吗?鉴于问题中缺乏信息,这似乎是一个有效的答案。
  • 不是反对者,但可能无法在支持有限 HTML 但不支持 Javascript 的 Swing 组件中工作。 duplicate 的可能合并候选者。
  • 我对这个答案持怀疑态度,显示一些工作代码可能是合适的。
猜你喜欢
  • 2010-10-09
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 2016-11-06
  • 1970-01-01
相关资源
最近更新 更多