五子棋图片为什么加载不上去呀?图片已复制到程序的image下
import javax.swing.JFrame;
public class Gobang extends JFrame {

     javax.swing.JButton jbutton1=new javax.swing.JButton("开始");
     javax.swing.JButton jbutton2=new javax.swing.JButton("悔棋");
     javax.swing.JPanel   jpanel1=new javax.swing.JPanel();
     java.awt.FlowLayout flowlayout=new java.awt.FlowLayout();
    
     GobangPanel gobangpanel=null;
     Gobang(){
      try{
      jpanel1.setLayout(flowlayout);
      jpanel1.add(jbutton1);
      jpanel1.add(jbutton2);
      this.getContentPane().add(jpanel1,java.awt.BorderLayout.NORTH);
      gobangpanel=new GobangPanel();
      this.getContentPane().add(gobangpanel);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setResizable(false);
      this.setSize(500,500);
      this.setVisible(true);
      
      }catch(Exception e){
      System.out.print("图形加载失败");
      }
      
              }
     
         public static void main(String[] arg){
                   new Gobang();
                                     }
         class GobangPanel extends  javax.swing.JPanel  {
          java.awt.image.BufferedImage gobangImage=null;
         public GobangPanel() throws Exception{ 
          java.io.InputStream in=getClass().getResourceAsStream("/image/qp.jpg");
         gobangImage= javax.imageio.ImageIO.read(in);
         }
        
         public void paintComponents(java.awt.Graphics g){
         super.paintComponent(g);
         g.drawImage(gobangImage,0,0,this);
         }
         }
}

解决方案 »

  1.   

    问题解决了!绘制组件的方法用错了应该用protected void paintComponent(java.awt.Graphics g)就能画上去了!
    可我不明白用public void paintComponents(java.awt.Graphics g)为什么就画不上去呀,都是绘制组件的方法
    有谁能给讲一下它俩的区别?
    protected void paintComponent(java.awt.Graphics g)
    public void paintComponents(java.awt.Graphics g)
      

  2.   

    查到了一个是从Panel继承,一个是从JPanel继承,JPanel才有paintComponent()这个方法