How to set a background picture in JPanel

前端 未结 3 955
猫巷女王i
猫巷女王i 2020-11-22 14:40

hello i am using JPanel as my container of my frame then i really want to used a background picture in my Panel i really need help this is my code so far . this is the updat

3条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-22 15:19

    import java.awt.*;
    
    import javax.imageio.ImageIO;
    import javax.swing.*;
    
    import java.awt.event.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    
    public class imagebut extends JFrame
    {
    
    public static void main(String args [])
    {
    imagebut w = new imagebut();
    w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    w.setSize(300,300);
    w.setVisible(true);
    
    }
     public imagebut()
    {   
    
    setLayout(null); // :-)
    PicPanel mainPanel = new PicPanel("picturename.jpg");
    mainPanel.setBounds(0,0,500,500);
    add(mainPanel);
    
    
      }
    
     class PicPanel extends JPanel{
    
    private BufferedImage image;
    private int w,h;
    public PicPanel(String fname){
    
        //reads the image
        try {
            image = ImageIO.read(getClass().getResource(fname));
            w = image.getWidth();
            h = image.getHeight();
    
        } catch (IOException ioe) {
            System.out.println("Could not read in the pic");
            //System.exit(0);
        }
    
    }
    
    public Dimension getPreferredSize() {
        return new Dimension(w,h);
    }
    //this will draw the image
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.drawImage(image,0,0,this);
    }
    }
    
     }
    

提交回复
热议问题