【发布时间】:2012-11-08 14:15:30
【问题描述】:
以下代码用于制作JDialog:
private class InfiniteDialog extends JDialog {
@Override
public void paintComponents(Graphics g)
{
super.paintComponents(g);
g.drawImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/menu_icons/loading.gif")), 0, 0, null);
}
}
下面是一些执行代码:
JDialog dialog=new InfiniteDialog();
dialog.setSize(300, 300);
dialog.setVisible(true);
但我可以看到没有背景的对话框。请告诉我,我该如何解决?
【问题讨论】:
-
.gif 相对于项目根文件夹的位置在哪里?
-
1)
public void paintComponents(Graphics g)应该是单数,例如public void paintComponent(Graphics g)2) 不要尝试在paint方法中加载图像!没有什么潜在的长期运行应该在那里完成。 3)JDialog是ImageObserver所以null应该是this。 4)This answer 展示了如何在帧中使用动画背景。也许它会有所帮助。 5) 为了尽快获得更好的帮助,请发布一个SSCCE,该SSCCE 与第 (4) 点中的源图像类似。
标签: java swing jdialog animated-gif