请教大虾,如何简单的将一个图片(jpg格式)设置为一个窗口的背景。
是不是要用getImage或createImage方法?
下面的程序可以运行,但运行后窗口背景没有变化,还是一片空白 :(// my java source
import java.awt.*;
import java.awt.event.*;public class PicEncoder extends Frame
{
public void lauchFrame()  {
this.setTitle("Example");
this.setSize(800,600);
this.setLocation(100,100);
this.setResizable(false);

this.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent e )  {
System.exit(0);
}
});

this.setVisible(true);
                  
                  // 请问下面这两行应如何该才能达到预期效果? 求教!
Image im = Toolkit.getDefaultToolkit().getImage("background.jpg");
im.getGraphics().drawImage(im, 0, 0, 800, 600, null);
} public static void main(String[] args)  {
PicEncoder pe = new PicEncoder();
pe.lauchFrame();
}
}

解决方案 »

  1.   

    关于这类问题 一般问题都出在两个地方:
    1. 图片路径,怕意外的话,用绝对路径
    2. 加了图片,别忘了"this.revalidate();"。
      

  2.   

    你可以这张图片放在这个PicEncoder.java或PicEncoder.class下面看看.这样肯定能够找到的.
      

  3.   

    重写frame的paint方法,把那两行放到paint方法里面,还有就是drawImage函数对于图片的处理,
    如果图片没加载完,那么drawImage函数只会绘制一部分就返回,一般我是这么写
    whiel(drawImage(...))
      

  4.   

    呃其实使用Eclipse的jigloo插件的话会很简单的
      

  5.   


    ImageIcon icon = new ImageIcon(getClass().getResource("/Resource/WelCome.gif"))
    JLabel label = new JLabel(icon);
    getContentPane().add(label);
      

  6.   

    Image im = Toolkit.getDefaultToolkit().getImage("background.jpg"); 
    im.getGraphics().drawImage(im, 0, 0, 800, 600, null); 
    把这两行代码放到,paintComponent函数中,重载它,因为初始化paint事件发生时只调用paintComponent的,你放在外面是不会调用的。