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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言入门教程–-9循环与条件语句习题与总结

    c语言入门教程–-9循环与条件语句习题与总结

    2021年3月12日
    238
  • tcp udp 的区别_反映和反应的区别

    tcp udp 的区别_反映和反应的区别一、TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TE…

    2022年9月20日
    0
  • 物联网智能家居系统设计方案(想开一家智能产品店)

    物联网智能家居系统1.需求分析、原理/基础准备1.1实验目的1.2基本功能1.3模块功能描述1.3.1主功能函数模块1.3.2串口通信模块1.3.3电机模块1.3.4时间获取模块1.3.5温湿度光电模块1.3.6烟雾模块1.3.7PWM调光模块1.3.8灯泡模块2.概要设计说明2.1模块调用图3.详细设计说明(各部分成员分工部分)3.1主程序模块3.2通信模块3.3串口模块3.4PWM调光模…

    2022年4月12日
    28
  • pycharm安装教程2021.2.2_eclipse环境配置

    pycharm安装教程2021.2.2_eclipse环境配置在PyCharm中如何配置Anaconda3环境软件:PyCharm2020.2.2×64;Anaconda3(64-bit)步骤如下:1.File→NewProject2.选择Newenvironment,Conda选项我的是默认选好的,没有更改3.Create即可,下一次创建新的项目默认使用Anaconda环境…

    2022年8月29日
    1
  • 二级域名

    二级域名

    2021年10月21日
    51
  • 转载——visio密钥[通俗易懂]

    转载——visio密钥[通俗易懂]转自:https://blog.csdn.net/yangmingsen1999/article/details/84934620GR24B-GC2XY-KRXRG-2TRJJ-4X7DCVWQ6G-37WBG-J7DJP-CY66Y-V278X2T8H8-JPW3D-CJGRK-3HTVF-VWD83HMCVF-BX8YB-JK46P-DP3KJ-9DRB222WT8-GGT7M-7M…

    2022年8月13日
    5

发表回复

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

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