JAVA swing_java action

JAVA swing_java action1.整体的结构图:2.编写GameFrame03.java的代码:packagecn.bjsxt.test;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;publi…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1.整体的结构图:

0818b9ca8b590ca3270a3433284dd417.png

2.编写GameFrame03.java的代码:

package cn.bjsxt.test;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class GameFrame03 extends Frame {

Image image = GameUtil.getImage(“images/sun.jpg”);

public void launchFrame() {

setSize(500, 500);

setLocation(100, 100);

setVisible(true);

new PaintThread().start();

addWindowListener(new WindowAdapter() {

// 单击右键选择“source”中的“override/implement

// methods”,frame里面勾选“windowClosed”点击“OK”

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

private double x = 100, y = 100;

private double degree = 3.14 / 3;

private double speed = 13;

// 单击右键选择“source”中的“override/implement

// methods”,window里面勾选“paint(graphic)”点击“OK”

@Override

public void paint(Graphics g) {

g.drawImage(image, (int) x, (int) y, null);

if (speed > 0) {

speed -= 0.1;

} else {

speed = 0;

}

x += speed * Math.cos(degree);

y += speed * Math.sin(degree);

if (y > 500 – 130 || y < 30) {

degree = -degree;

}

if (x < 0 || x > 500 – 130) {

degree = Math.PI – degree;

}

}

class PaintThread extends Thread {

public void run() {

while (true) {

repaint();

try {

Thread.sleep(40);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

public static void main(String[] args) {

GameFrame03 gf = new GameFrame03();

gf.launchFrame();

}

}

3.编写GameUtil.java的代码:

package cn.bjsxt.test;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.net.URL;

import javax.imageio.ImageIO;

public class GameUtil {

private GameUtil() {

}

public static Image getImage(String path) {

URL u = GameUtil.class.getClassLoader().getResource(path);

BufferedImage image = null;

try {

image = ImageIO.read(u);

} catch (IOException e) {

e.printStackTrace();

}

return image;

}

}

4.运行之后的结果:

0818b9ca8b590ca3270a3433284dd417.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226897.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月22日 下午1:22
下一篇 2025年6月22日 下午2:01


相关推荐

  • pycharm多行注释

    pycharm多行注释选中需要注释的代码 ctrl 首字母大写 test alex v test capitalize print v 字符串的加法 n1 my n2 name n3 is n n1 n2 n3print n 转载于 https www cnblogs com thinkplo p

    2026年3月27日
    2
  • PO模式深入封装

    PO模式深入封装目标1.能够采用继承的思想对PO模式进行深入的封装1.V6版本把共同操作提取封装到父类中,子类直接调用父类的方法,避免代码冗余1.对象库层-基类,把定位元素的方法定义在基类中2.操作层-基类,把对元素执行输入操作的方法定义在基类中1.1示例代码#base_page.pyfrompo.utilsimportDriverUtilcla…

    2022年6月11日
    50
  • SVN安装与使用_刚安装ETC不能马上使用吗

    SVN安装与使用_刚安装ETC不能马上使用吗SVN(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了SVN。Subversion项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS系统的一些不足。svn是基于客户/服务器模式,所以分客户端和服务器端,作为开发人员,自己的电脑上只需要安装客户端,又…

    2022年8月30日
    3
  • C和指针-终于看到指针这一章

    C和指针-终于看到指针这一章

    2021年8月22日
    71
  • windows安装器引导驱动器选择哪个?_git安装教程 windows

    windows安装器引导驱动器选择哪个?_git安装教程 windowsgitcz是git的一个插件,git本身并不提供,但其提供了非常强的格式管理以及良好的操作模式,使其可以完全替代gitcommit。Windows使用此工具需要使用windows的cmd或者powershell,以下命令执行亦是如此。一、安装nvm1.进入https://github.com/coreybutler/nvm-windows/releases下载nvm-setup.zip安装包2…

    2025年9月3日
    8
  • 补码和原码的转化过程

    补码和原码的转化过程在计算机系统中 数值一律用补码来表示 存储 nbsp 主要原因 使用补码 可以将符号位和其它位统一处理 同时 减法也可按加法来处理 另外 两个用补 nbsp 码表示的数相加时 如果最高位 符号位 有进位 则进位被舍弃 nbsp 补码与原码的转换过程几乎是相同的 nbsp 数值的补码表示也分两种情况 nbsp 1 正数的补码 与原码相同 nbsp nbsp nbsp nbsp nbsp nbsp 例如 9 的补码是 00001001 nbsp 2 负数的补码 符

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号