当前位置: 首页 > news >正文

java的第一个游戏界面

看视频02_大鱼吃小鱼_添加背景图_尚学堂_哔哩哔哩_bilibili

学习方法:

就对的视频小代码,书籍没有,遇到不懂的问ai

今日成果,

界面代码

package new_gameobj;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;import javax.swing.JFrame;
import javax.swing.WindowConstants;import game_utile.game_pic;public class window extends JFrame {int width=1440;int height=900;public void launch() {this.setVisible(true);this.setSize(width,height);this.setLocationRelativeTo(null);//如果setLocationRelativeTo的参数是null,//则窗口会相对于整个屏幕居中显示。如果参数是一个特定的组件
//		this.setResizable(false);//设置可调解大小的this.setTitle("这是一个长久项目");this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/** DO_NOTHING_ON_CLOSE:当用户试图关闭窗口时,不执行任何操作。这通常用于在关闭窗口之前需要确认的情况。
HIDE_ON_CLOSE:当用户试图关闭窗口时,只隐藏窗口,但不会终止程序。这是 JFrame 的默认操作。
DISPOSE_ON_CLOSE:当用户试图关闭窗口时,会释放窗口的资源并隐藏窗口。如果所有窗口都被dispose,程序将结束。
EXIT_ON_CLOSE:当用户试图关闭窗口时,会退出应用程序。这通常用于程序的主窗口。*/}@Overridepublic void paint(Graphics g) {super.paint(g);// 调用父类的paint方法来确保其他组件也被绘制// 确保图像已经被加载// 正确的方式是使用静态变量try {g.drawImage(game_pic.bgimgage,0,0,null);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}
}/** 在Java Swing中,paint 方法通常不需要手动调用,因为它是自动调用的。当你创建一个窗口(例如 JFrame)并设置为可见时,Swing 的绘图系统会在必要时调用 paint 方法来绘制组件。在你提供的代码中,paint 方法被覆盖了,这意味着当Swing框架决定需要重绘窗口时(例如,窗口首次显示、窗口大小改变、窗口被遮挡后又重新显示等),它会自动调用这个方法。*/public static void main(String[] args) {window gamewine=new window();gamewine.launch();}}

加载图片代码

package game_utile;
import java.awt.*;
import java.net.URL;
public class game_pic {public static Image bgimgage=Toolkit.getDefaultToolkit().createImage("/D:/programing/javaide/new_game/bin/game_utile/sea.png");
}
/*

问题纠结,

在用图片时建议直接用绝对地址算了

学习知识

@Override

public void paint(Graphics g) {

super.paint(g);

// 调用父类的paint方法来确保其他组件也被绘制

// 确保图像已经被加载

// 正确的方式是使用静态变量

try {

g.drawImage(game_pic.bgimgage,0,0,null);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

在随便移动窗口,paint方法会自动调用,因为类是继承了jframe,然后,里面是有方法会自动的,还用

// 调用父类的paint方法来确保其他组件也被绘制

// 确保图像已经被加载

// 正确的方式是使用静态变量

try {

g.drawImage(game_pic.bgimgage,0,0,null);

http://www.lryc.cn/news/465003.html

相关文章:

  • 【AIGC】ChatGPT提示词Prompt高效编写模式:Self-ask Prompt、ReACT与Reflexion
  • android studio无法下载依赖包问题
  • SQL入门
  • Java中的Math类
  • 大厂常问iOS面试题–Runloop篇
  • 【解决】mac报错“zsh: command not found: nvm”
  • MySQL同步到ES的方案选型
  • Transformer 与 CNN的对比
  • Maven入门到进阶:构建、依赖与插件管理详解
  • 炒股VS炒游戏装备,哪个更好做
  • AI图像处理工具:开发者高阶用法与最佳实践
  • Spring Boot 2.6=>2.7 升级整理
  • Race Track Generator Ultimate:Race Track Generator(赛车场赛道看台场景创建工具)
  • 数据结构7——二叉树的顺序结构以及堆的实现
  • leetcode hot100 之【LeetCode 21. 合并两个有序链表】 java实现
  • Android Camera系列(五):Camera2
  • 从DexMV、VideoDex、MimicPlay到SeeDo:从人类视频中学习:机器人的主流训练方法之一
  • 如何在Docker中运行Squid
  • Ubuntu22.04 加入AD域
  • Docker 构建 Miniconda3 Python 运行环境实战指南
  • 029 elasticsearch文档管理(ElasticsearchRepository、ElasticsearchRestTemplate)
  • 【Flutter】Dart:Isolate
  • ​微信小程序 页面间传递数据
  • 前端_005_Nodejs
  • SpringCache缓存介绍
  • python实战(一)——iris鸢尾花数据集分类
  • k8s-对命名空间资源配额
  • Failed to connect to github.com port 443
  • 【设计模式系列】简单工厂模式
  • 给定一个正整数n随机生成n个字节即生成2n个十六进制数将其组成字符串返回secrets.token_hex(n)