¿Cómo dibujo una imagen en un JPanel o JFrame?

¿Cómo dibujo una imagen en un JPanel o JFrame, ya he leído el tutorial de Oracle sobre esto, pero parece que no puedo hacerlo bien. Necesito que se muestre la imagen ” BeachRoad.png ” en un conjunto específico de coordenadas. Esto es lo que tengo hasta ahora.

 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); } 

Y en Main (),

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

¡Gracias por adelantado!

Prueba esto:

 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; } } 

Hay muchos métodos, pero siempre anulo la paint(Graphics g) de un JComponent y uso g.drawImage(...)

editar: estaba haciendo una muestra, pero tieTYT lo hizo perfectamente, mira su respuesta 🙂