程序如下:
package example;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BackFrame {
JFrame frm;
JPanel pnl;
Backimage bi;
public void frm(){
frm=new JFrame("背景图片");
pnl=new JPanel();
bi=new Backimage();
bi.setImage(new ImageIcon("bg.jpg").getImage());
pnl.add(bi);
frm.add(pnl);
frm.setLocation(500, 100);
frm.setSize(600, 450);
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
BackFrame bf=new BackFrame();
bf.frm();
}
}
package example;
import java.awt.Graphics;
import java.awt.Image;
public class Backimage extends javax.swing.JPanel{
/**
 * 
 */
private static final long serialVersionUID = 1L;
Image image=null;
Graphics g=this.getGraphics();
public void setImage(Image image){
this.image=image;
this.paintComponent(g);
}
public void paintComponent(Graphics g){
if(image!=null){
boolean b=g.drawImage(image, 0,0,this);
System.out.println(b);
}
super.paintComponent(g);
}
}报的是错误是:
Exception in thread "main" java.lang.NullPointerException
at example.Backimage.paintComponent(Backimage.java:17)
at example.Backimage.setImage(Backimage.java:13)
at example.BackFrame.frm(BackFrame.java:13)
at example.BackFrame.main(BackFrame.java:23)
但是我不知道哪里空指针了???
如果你有好的实现背景图片的程序可以分享一下!!!!

解决方案 »

  1.   

    public static void main(String args[])
    public static void main(String[] args)
      

  2.   

    看LS的积分应该不是新手啊,但看他回答还真是个新手都应该不会犯错的东西啊
    String args[] 和String[] args是一样的啊
      

  3.   

    空指针错误在
    at example.Backimage.paintComponent(Backimage.java:17)第17行你看看你17号是什么代码 ,就知道为啥空指针了,,,
      

  4.   

    应该是图片的路径问题。在 System.getProperty("user.dir") 这个路径下找不到图片。另外这个类修改一下:
    package example;
    import java.awt.Graphics;
    import java.awt.Image;
    public class Backimage extends javax.swing.JPanel{
        private static final long serialVersionUID = 1L;
        Image image=null;    public void setImage(Image image){
            this.image=image;
            repaint();
        }
        public void paintComponent(Graphics g){
            if(image!=null){
                boolean b=g.drawImage(image, 0,0,this);
                System.out.println(b);
            }
            super.paintComponent(g);
        }
    }
      

  5.   

    以前学的是c,刚转java三个月,很多还是不清楚,这点积分是我用了2个礼拜挣的,呵呵,
      

  6.   

    String[] args
    String... args
    String args[]
    推荐使用前两种。
      

  7.   

    自己弄张图片放在src下面  名字改成image.png就好package 实验;import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Toolkit;
    import javax.swing.JFrame;public class Example extends JFrame{

    private static final long serialVersionUID = 3667932590042261671L;

    private static Image image = Toolkit.getDefaultToolkit().
    getImage(Example.class.getClassLoader().getResource("image.png"));

    public Example(){
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(300,300);
    this.setVisible(true);
    this.setResizable(false);
    }
    public void paint(Graphics g){
    super.paint(g);
    this.setIconImage(image);
    g.drawImage(image, 0,0,300,300,null);
    }

    public static void main(String[] args){
    new Example();
    }

    }
      

  8.   

    我很想问我的结帖率怎么了????
    另外String []args
    和String args[]那不是一样吗???