问题遇到的现象和发生背景
最近在做这个捕鱼达人的游戏时发现,想在新创建的fish类中实现鱼的基本属性,然后在Gamepanel中通过创建对象通过调用paint 方法实现,可是结果是鱼的图片怎么都显示不出来,只有之前设置成功的背景图成功实现了
想问问我的错误在哪里啊
问题相关代码,请勿粘贴截图
package fish1;
import java.awt.image.BufferedImage;
public class fish {
private BufferedImage img;
private int x;
private int y;
private int w;
private int h;
public fish() {
img =imageUntils.getImg("/image/fish10_01.png");
x=100;
y=100;
w=img.getWidth();
y=img.getHeight();
}
public BufferedImage getImg() {
return img;
}
public void setImg(BufferedImage img) {
this.img = img;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getW() {
return w;
}
public void setW(int w) {
this.w = w;
}
public int getH() {
return h;
}
public void setH(int h) {
this.h = h;
}
}
```java
package fish1;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.*;
public class GamePanel extends JPanel {
fish Fish= new fish();
BufferedImage bg=imageUntils.getImg("/image/bg_03.png");//导入背景图片
public GamePanel(){
setBackground(Color.pink);
}
public void paint(Graphics g) {
super.paint(g);
g.drawString("游戏分数", 0, 0);
g.drawImage(bg,0,0,null);
g.drawImage(Fish.getImg(),Fish.getX(),
Fish.getY(), Fish.getW(), Fish.getH(), null);
}
}
package fish1;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.Buffer;
import javax.imageio.ImageIO;
public class imageUntils {//用于获得图像
public static BufferedImage getImg (String path){//BufferedImage提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。
//使用静态方法,可以使用类名直接调用方法
BufferedImage image=null;
try {
image=ImageIO.read(imageUntils.class.getResource(path));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return image;
}
}
package fish1;
import javax.swing.*;//swing的三个基本特征:标签、按钮和文本字段
public class GameFram extends JFrame {
public GameFram() {
setSize(800,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("捕鱼达人");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
GameFram fram=new GameFram();//建立一个窗口
GamePanel panel=new GamePanel();//创立一个panel对象
fram.add(panel);//将两个对象合并
fram.setVisible(true);
}
}
###### 运行结果及报错内容
###### 我的解答思路和尝试过的方法
###### 我想要达到的结果
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/819125425456118.png "#left")