额一个东西

简介: JFare 窗口JPanel 画布

先放代码 啦啦啦

比较白,我就按我理解的来啦!

一个小球!!!

publicclassOneBall {
publicstaticvoidmain(String[] args) {
BallJFramep=newBallJFrame();
}

ball 类 球类,定义了一个球的大小,颜色,坐标等等等等;

importjava.awt.*;
publicclassBall {
intx;  //球的x坐标inty;  //球的y坐标Colorballcolor;  //球的颜色intd; //球的大小intdir; //有且仅有1, 2,3 ,4 四个固定的数值 1-左上,2-左下,3-右上,4-右下intspeed; //球的速度//定义球的四个运动方向(int  d)publicstaticfinalintLEFT_UP=1;
publicstaticfinalintLEFT_DOWN=2;
publicstaticfinalintRIGHT_UP=3;
publicstaticfinalintRIGHT_DOWN=4;
//使用构造方法完成小球的初始化设置(出厂设置)publicBall(){
this.x=100; //球的初始x坐标this.y=100; //球的初始y坐标this.d=50;  //球的初始直径this.dir=(int) (Math.random()*4)+1;   //球的初始方向    }
//行为//绘制球publicvoidpaintball(Graphicsg){
g.setColor(ballcolor);//球的颜色g.fillOval(x,y,d,d);//球的大小和位置    }
publicvoidballmove(){
intr=(int)(Math.random()*256);//球的颜色 r g bintg=(int)(Math.random()*256);
intb=(int)(Math.random()*256);
this.ballcolor=newColor(r,g,b);
//定义球在四个方向上的运动变化if (dir==RIGHT_UP){
x=x+speed;
y=y-speed;
        }
if(dir==RIGHT_DOWN){
x=x+speed;
y=y+speed;
        }
if (dir==LEFT_DOWN){
x=x-speed;
y=y+speed;
        }
if (dir==LEFT_UP){
x=x-speed;
y=y-speed;
        }
//以边为界限时,当遇见每条边的时候的运动方式//上if (y<=0){
//当球顺时针运动if (dir==RIGHT_UP)
dir=RIGHT_DOWN;
//当球逆时针运动if (dir==LEFT_UP)
dir=LEFT_DOWN;
        }
//下if (y>=500-d-30){
//顺时针if (dir==LEFT_DOWN)
dir=LEFT_UP;
//逆时针if (dir==RIGHT_DOWN)
dir=RIGHT_UP;
        }
//左if (x<=0) {
//顺时针if (dir==LEFT_UP)
dir=RIGHT_UP;
//逆时针if (dir==LEFT_DOWN)
dir=RIGHT_DOWN;
        }
//右if (x>=700-d-25){
//顺时针if (dir==RIGHT_DOWN){
dir=LEFT_DOWN;}
//逆时针if (dir==RIGHT_UP){
dir=LEFT_UP;}
        }
    }
}

窗口:

这个就好简单啦

一个窗口,窗口的大小、是否居中、关闭窗口后是否结束程序、是否要显示窗口这些。

importjavax.imageio.ImageIO;
importjavax.swing.*;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
publicclassBallJFrameextendsJFrame {
BufferedImageJFrameicon;
publicBallJFrame(){
try {
JFrameicon=ImageIO.read(newFile("start.png"));
        } catch (IOExceptione) {
e.printStackTrace();
        }
this.setIconImage(JFrameicon);  //设置窗口图标this.setTitle("小球弹弹弹");//设置窗口名称this.setSize(700,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭进程结束//设置窗口大小不可改变this.setResizable(false);
//设置窗口初始位置居中this. setLocationRelativeTo(null);
BallJPanelballJPanel=newBallJPanel();
ballJPanel.move();
this.add(ballJPanel);
//设置窗口 - 显示/不显示this.setVisible(true);
    }
}

画布:

就好像在窗口上装了一个窗户,可以显示外面的景色

importjavax.swing.*;
importjava.awt.*;
publicclassBallJPanelextendsJPanel {
Ballball=newBall();
publicBallJPanel(){//构造方法,让画布的颜色是粉色pink色this.setBackground(Color.PINK);
    }
@Override//重构方法paint,一支笔。publicvoidpaint(Graphicsg) {
super.paint(g);
ball.paintball(g);
    }
publicvoidmove(){
//多线程,额我还白,我也不太懂。newThread(){
//1.球动publicvoidrun(){
while (true) {//写个死循环让你一直跑,哼。ball.ballmove();
try {
sleep(10);//休眠                    } catch (InterruptedExceptione) {
e.printStackTrace();
                    }
repaint();
                }
            }
        }.start();
    }
}

主要的就有这些:

我整理一下,,,,,,,


目录
相关文章
解决开启子线程,导致request上下文和session信息丢失问题
解决开启子线程,导致request上下文和session信息丢失问题
1422 0
|
消息中间件 设计模式 Java
Java Review - Java进程内部的消息中间件_Event Bus设计模式
Java Review - Java进程内部的消息中间件_Event Bus设计模式
260 0
|
4月前
|
监控 容灾 大数据
智慧家庭的解决方案
本系统由后台与前台两部分组成。后台包括服务器、大数据中心、智能设备控制云等,支撑智慧家庭运作;前台涵盖用户手机、家庭局域网及各类智能嵌入式设备(如马桶、空调、音响等)。系统部署上,后台在多地设数据中心以保障数据合规与容灾备份,前台则通过阿里云智能家居系统实现联网与智能化。具体设置覆盖家门口、客厅、厨房、房间、厕所、储物室等区域,配备面部识别门锁、健康监测设备、智能家电等,支持用户按需扩展学习、娱乐、办公等多功能智能设备。
|
11月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
823 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
10月前
|
应用服务中间件 nginx
Nginx:怎么携带参数重定向
通过合理配置Nginx的 `rewrite`指令和 `return`指令,可以实现携带参数的重定向。这不仅可以确保用户请求被正确重定向,还可以保留原始查询参数,满足更多复杂的重定向需求。
645 1
|
11月前
|
前端开发 数据库 Python
Django自带图形验证码 django-simple-captcha
Django自带图形验证码 django-simple-captcha
162 0
|
算法 网络协议 应用服务中间件
(五)网络编程之流量接入层设计:基于性能怪兽从零构建日均亿级吞吐量的网关架构!
在前篇关于《Nginx》的文章中曾经提到:单节点的Nginx在经过调优后,可承载5W左右的并发量,同时为确保Nginx的高可用,在文中也结合了Keepalived对其实现了程序宕机重启、主机下线从机顶替等功能。
226 0
|
存储 网络协议 JavaScript
WebSocket相关知识
WebSocket相关知识
122 2
【高效写作技巧】文章质量分有什么用?如何提高质量分
【高效写作技巧】文章质量分有什么用?如何提高质量分
267 0