我有一个窗口(公共类Panel扩展JPanel),它正在设置URL
的背景@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
try
{
this.imgBG = ImageIO.read(new URL("http://myhost.com/bg.png"));
}
catch (Exception e)
{
System.out.println("[ERROR] Could not load custom background image! Using resources.");
this.imgBG = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Resources/bg.png"));
}
g.drawImage(imgBG, 0, 0, this);
}
如果它不会加载图像,那么它将使用Resources中的一个。 问题是那些图像内存很重,加载它们滞后整个窗口。 有没有办法在背景线程中绘制BG? 如果没有,这是一个很好的解决方案:
答案 0 :(得分:0)
通常,您不应该在任何paint方法中加载资源。在应用程序的生命周期中,将多次调用绘制方法。
尝试使用SwingWorker
在后台加载图片并在完成后更新面板
您可以在程序开头加载图像作为程序加载过程的一部分,例如....