0

当正在处理某些事情以向用户显示正在发生的事情时,我想显示一个旋转的进度轮事物(像这样)。有什么办法可以做到这一点而不会弹出整个窗口?我正在使用秋千。谢谢。

4

2 回答 2

4

假设您的应用程序正在使用某种 Swing 容器,我建议将动画 gif 设置为 a 的图标JLabel并将其放在容器的GlassPane上。然后在必要时切换此窗格。

是一个部分相关的实现(注意输入事件的阻塞)。

于 2012-04-04T20:27:47.383 回答
3

这里有两个关于如何在屏幕上弹出显示图像的精简说明示例。根据需要调整图像来源、位置、大小、异常处理等。

示例 1 of 2,使用 JLabel 的半透明:

public static void main(String args[]) throws Exception {
JWindow jWindow = new JWindow() {
final Icon icon = new ImageIcon(<yourImage>);  // Okay to be animated
{
    setOpacity(.642f);
    setLocation(0,0);
    setSize(icon.getIconWidth(), icon.getIconHeight());
    add(new JLabel(icon));
    pack();
}
};
jWindow.setVisible(true);
Thread.sleep(3000);
jWindow.setVisible(false);
}

示例 2 的 2,使用油漆透明:

public static void main(String args[]) throws Exception {
JWindow jWindow = new JWindow() {
final Image image = ImageIO.read(<yourImage>);  // Static image only
{
    setLocation(0,0);
    setSize(image.getWidth(), image.getHeight());
}
public void paint(Graphics g) {
    g.drawImage(image, 0, 0, null);
}
};
jWindow.setVisible(true);
Thread.sleep(3000);
jWindow.setVisible(false);
}
于 2012-04-04T22:13:46.337 回答