weixin_52112283 2022-06-06 22:11
浏览 20
已结题

在Gamepanel中通过创建对象调用方法出现的问题

问题遇到的现象和发生背景

最近在做这个捕鱼达人的游戏时发现,想在新创建的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")

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月14日
    • 创建了问题 6月6日

    悬赏问题

    • ¥15 结构功能耦合指标计算
    • ¥20 visual studio中c语言用ODBC链接SQL SERVER
    • ¥50 AI大模型精调(百度千帆、飞浆)
    • ¥15 非科班怎么跑代码?如何导数据和调参
    • ¥15 福州市的全人群死因监测点死亡原因报表
    • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
    • ¥15 系统2008r2 装机配置推荐一下
    • ¥15 悬赏Python-playwright部署在centos7上
    • ¥15 psoc creator软件有没有人能远程安装啊
    • ¥15 快速扫描算法求解Eikonal方程咨询