How to set a background picture in JPanel
In this code, we have added a JPanel named mainPanel to represent the background. Here's the updated code:
<code class="java">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(new File(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); } } }</code>
This code will now set the background image to the JPanel, and it will be displayed correctly in the frame.
The above is the detailed content of How to Set a Background Image for a JPanel in Java?. For more information, please follow other related articles on the PHP Chinese website!