摆动无窗组件?

时间:2012-04-04 20:24:03

标签: java swing progress jcomponent

我想展示一个旋转进度轮的东西(比如this)什么时候正在处理以向用户显示正在发生的事情。有没有什么方法可以做到这一点,而不是为它弹出整个窗口?我正在使用秋千。感谢。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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,使用paint进行透明:

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);
}