java的第一个游戏界面

server/2024/10/21 10:54:24/

看视频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.ppmy.cn/server/133616.html

相关文章

Linux期末考试编程题汇编

1、编写 Shell 脚本,输入一个数字 N,使用 until 语句,计算 1~N 的和。 #!/bin/bash# 输入一个数字Nread -p "请输入一个数字 N: " N# 初始化和为0sum0# 初始化计数器i1# 使用until循环计算1到N的和until [ $i -gt $N ]dosum$((sum…

关于k8s中,存储卷的使用

1. 卷的作用 在容器化的环境中,容器的主体操作分为创建和删除。 在容器化的环境中,区别于传统模式,对于服务的修改、配置、修复等操作 在容器化的环境中,尤其针对于k8s的设计理念 主要将其简化为创建和删除 当一个容器对于其…

LabVIEW离心泵振动监控与诊断系统

利用LabVIEW结合数据采集与处理技术,构建了一套高效、低成本的振动监测与诊断系统,有效提升了测试精度与设备可靠性。 项目背景 在化工生产中,离心泵作为关键设备,其稳定运行对保障生产安全与效率至关重要。由于传统振动测试系统…

分析软件工具——MATLAB综合实验(一)系统环境与运算基础

实验目的 实验内容 实验一: 实验二: 实验三: a -3:0.1:3; % 创建一个从 -3 到 3 的向量 b exp(0.3 .* a) - exp(-0.3 .* a) % 计算 b b 列 1 至 6-2.0530 -1.9680 -1.8847 -1.8030 -1.7231 -1.6446列 7 至 …

基于yolov5_7.0 pyside6 active_learning 开发的人工智能主动学习外周血细胞目标检测系统

基于YOLOv5的图像识别与主动学习应用程序 项目介绍 本项目是一个使用PySide6库开发的基于YOLOv5框架的图像识别应用程序。该应用程序不仅支持用户选择图像文件进行目标物体检测,还具备主动学习功能,允许用户手动标记错误的检测结果以优化模型。此外&am…

数据结构7——二叉树的顺序结构以及堆的实现

在上篇文章数据结构6——树与二叉树中,我们了解了树和二叉树的概念,接着上篇文章,在本篇文章中我们学习二叉树顺序结构的实现。 目录 1. 二叉树的顺序存储结构 2. 堆的概念及结构 1. 堆的概念 2. 堆的结构 3. 堆的实现 1. 堆节点 2. 交…

ubuntu安装docker及docker compose

在Ubuntu上安装Docker通常包括以下几个步骤: 更新包索引: 打开终端并运行以下命令来更新你的包索引: sudo apt update安装必要的依赖: 安装apt-transport-https、ca-certificates、curl、software-properties-common、gnupg等软件…

Golang | Leetcode Golang题解之第485题最大连续1的个数

题目: 题解: func findMaxConsecutiveOnes(nums []int) (maxCnt int) {cnt : 0for _, v : range nums {if v 1 {cnt} else {maxCnt max(maxCnt, cnt)cnt 0}}maxCnt max(maxCnt, cnt)return }func max(a, b int) int {if a > b {return a}return …