【发布时间】:2021-02-13 03:10:50
【问题描述】:
如何将图像绘制到 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,0, 0, EverythingButPlayer);
this.add(EverythingButPlayer);
}
在 Main() 中,
l1 = new Level1();
l1.setTitle("poop");
l1.setSize(1920, 1080);
l1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
l1.setVisible(true);
提前致谢!
【问题讨论】:
-
你的代码是直接解决问题或讨厌编程语言的方法 (whatever.getGraphics()) 1. 请阅读 Oracle 教程Working with Images,在
paintComponent标记的帖子中搜索此处或JLabel与Icon/ImageIcon -
我已经在问题的第一部分中说明了我阅读了有关使用图像的 Oracles 教程。我真的不能理解你说的第一件事......
-
查看@tieTYT 的回答,从paintComponent(忘了paint())和JPanel 开始,需要为JPanel 覆盖getPreferredSize(忘了JFrame.setSize()),然后调用JFrame.pack ()(在这里搜索,关于画图、形状、线条的一半问题)
标签: java swing jframe jpanel bufferedimage