gpt4 book ai didi

java - 无法将图像放入框架中

转载 作者:行者123 更新时间:2023-12-02 04:48:35 26 4
gpt4 key购买 nike

我是一名初级程序员,尝试使用 Java eclipse 创建 Pacman 游戏。我正处于该过程的开始阶段,我只是想在 JFrame 屏幕上获取我的主要 "Princess Pacman" 角色,但是,我弹出了此覆盖错误向上。我也尝试过不进行覆盖,但它似乎也不适合我。

这是我的代码:

import java.awt.*;
import java.awt.image.*;
import java.io.File;
import java.io.IOException;
import java.awt.event.KeyEvent;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Pacman extends JFrame {
public static final int WIDTH = 500;
public static final int HEIGHT = 500;

public static void main(String args[]){
Pacman gui = new Pacman();
gui.setVisible(true);
}

BufferedImage princess = null;
public Pacman(){
super("Princess Pacman");
//set size of playing space
setSize(WIDTH,HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try{
princess =ImageIO.read(new File("images/Elsa.jpeg"));
}
catch (IOException e){
System.out.println("image not found");
}

}

@Override
public void draw(Graphics2D g){
g.drawImage(princess.getScaledInstance(100, 100, Image.SCALE_DEFAULT), 0, 0, this);
}

}

最佳答案

  • draw不是 JFrame 定义的方法或其任何父类,因此不能覆盖它
  • draw任何实际绘制的东西都不会调用
  • 您应该避免直接绘制到顶层容器,因为上面绘制了很多东西。
  • 您可以使用JLabel ,但这存在问题。相反,创建一个从 JPanel 扩展的自定义类并覆盖其 paintComponent方法,确保您调用 super.paintComponent在渲染图像之前

仔细看看Painting in AWT and Swing , Performing Custom Paintingthis for example

关于java - 无法将图像放入框架中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29466162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com