这这个论坛找了半天,很奇怪试遍所有的关于JPanel里加载图片的代码都不成功,显示不了。请给个完整的成功代码。谢谢。

解决方案 »

  1.   

    用JLabel加载图片,放到JPanel显示
      

  2.   

    package udptool;
    import javax.swing.*;
    import java.awt.*;public class DrawPanel extends JScrollPane
    {
        private Dimension size = new Dimension(20,10);
        Image img;
        int imgWidth,imgHeight;
        
        public void setImage(Image i){
          this.img = i;
          repaint();
        }
        
        public DrawPanel(Dimension size)
        {
            super();
            this.size = size;
            imgWidth=size.width;
            imgHeight=size.height;
        }
        
        public DrawPanel(int width,int height)
        {        
            this(new Dimension(width,height));
        }
        
        public Dimension getPreferredSize()
        {
            return size;
        }
     
        protected final void paintComponent(Graphics g)
        {
           if(img!=null)
             g.drawImage(img,0,0,imgWidth,imgHeight-30,this);   
          
        }
        public static void main(String[] args){
         JFrame a = new JFrame();
         DrawPanel n = new DrawPanel(new Dimension(400,300));
         JScrollPane jsp=new JScrollPane();
         n.setImage(n.getToolkit().getImage(".\\1.jpg"));
         n.setLayout(null);
         JTextArea jta=new JTextArea();
         jta.setOpaque(false);
         n.getViewport().add(jta);
         a.getContentPane().add(n);
         a.setSize(a.getPreferredSize());
         a.show();
        }

    这个是JScrollPane弄的,用JPanel就不用setLayout(null)了。
      

  3.   

    bbqqfdl(旅行中の狗)
    需要改个小地方哦:
    n.setImage(n.getToolkit().getImage(".\\1.jpg"));
    改为:
    n.setImage(n.getToolkit().getImage(DrawPanel.class.getResource(".\\1.jpg")));