Come faccio a disegnare un’immagine su JPanel o JFrame?

Come faccio a disegnare un’immagine su JPanel o JFrame, ho già letto il tutorial di oracle su questo, ma non riesco a farlo bene. Ho bisogno dell’immagine ” BeachRoad.png ” per essere visualizzata su un insieme specifico di coordinate. Ecco cosa ho finora.

 public class Level1 extends JFrame implements ActionListener { static JLayeredPane EverythingButPlayer; static Level1 l1; public Level1() { EverythingButPlayer = new JLayeredPane(); BufferedImage img = null; try { img = ImageIO.read(new File("BeachRoad.png")); } catch (IOException e) { } Graphics g = img.getGraphics(); g.drawImage(img,0, 0, EverythingButPlayer); this.add(EverythingButPlayer); } 

E nel Main (),

  l1 = new Level1(); l1.setTitle("poop"); l1.setSize(1920, 1080); l1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); l1.setVisible(true); 

Grazie in anticipo!

Prova questo:

 package com.sandbox; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class SwingSandbox { public static void main(String[] args) throws IOException { JFrame frame = buildFrame(); final BufferedImage image = ImageIO.read(new File("C:\\Projects\\MavenSandbox\\src\\main\\resources\\img.jpg")); JPanel pane = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, null); } }; frame.add(pane); } private static JFrame buildFrame() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setSize(200, 200); frame.setVisible(true); return frame; } } 

Ci sono molti metodi, ma ho sempre la precedenza su paint(Graphics g) di un JComponent e uso g.drawImage(...)

edit: stavo facendo un campione, ma tieTY lo ha fatto perfettamente, guarda la sua risposta 🙂