( ̄o ̄) . z Z683 2023-03-24 21:27 采纳率: 30%
浏览 40

java小游戏无法显示图片


package com.fjl;

import com.fjl.com.fjl.utils.GameUtils;

import javax.swing.*;
import java.awt.*;

/**
 * @author FJL
 * @version 1.0
 */
//窗口的创建
public class GameWin extends JFrame {
    public void launch() {
        //窗口是否可见
        this.setVisible(true);
        //窗口的大小
        this.setSize(600, 600);
        //窗口位置
        this.setLocationRelativeTo(null);
        //窗口标题
        this.setTitle("飞机大战");
    }

    //override paint method
    @Override
    public void print(Graphics g) {

        g.drawImage(GameUtils.background1, 0, 0, null);
    }

    public static void main(String[] args) {
        GameWin gameWin = new GameWin();
        gameWin.launch();
    }
}

package com.fjl.com.fjl.utils;

import java.awt.*;

/**
 * @author FJL
 * @version 1.0
 */

public class GameUtils {
    // 背景图片添加
    public static Image background1 = Toolkit.getDefaultToolkit().getImage("imgs/bg.jpg");
}


代码编译没问题,运行时只有窗口,里面没有插入的背景图片,我按照File-->Invalidate Cashes清除缓存重启均无效

  • 写回答

2条回答 默认 最新

  • IT_service_mesh 2023-03-24 21:29
    关注

    参考GPT和自己的思路:根据您提供的代码,我看到您使用了Toolkit.getDefaultToolkit().getImage()方法加载背景图片。这种方式在加载较大的图片时可能会遇到问题,可能导致图片无法显示。我建议您使用ImageIO类加载图片。您可以尝试将以下代码添加到GameUtils类中,以加载背景图片:

    public static Image background1;
    
    static {
        try {
            background1 = ImageIO.read(new File("imgs/bg.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    请确保您正确设置了背景图片的路径。如果仍然无法显示背景图片,请在控制台中查看是否有相关的错误信息。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月24日

悬赏问题

  • ¥15 根据会员信息表绘制堆积柱状图
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,