我如何将图像绘制到JPanel或JFrame,我已经阅读了oracle的教程,但我似乎无法正确的.我需要将图像“BeachRoad.png”显示在一组特定的坐标上.这是我到目前为止.
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,EverythingButPlayer); this.add(EverythingButPlayer); }
在Main()中,
l1 = new Level1(); l1.setTitle("poop"); l1.setSize(1920,1080); l1.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); l1.setVisible(true);
提前致谢!
解决方法
尝试这个:
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,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; } }