开发工具与关键技术:MyEclipse 10、JAVA
作者:曾浩源
撰写时间:2019年04月22日

Java中有个工具类:Frame,它可以制作桌面窗体应用程序,要制作太阳系模型,就先需要了解一下这个类:

一、如何显示窗体以及设置它的位置和大小;
二、如何在窗体里面写入所要加载的内容;
三、如何让内容简单的动起来;

第一个问题:如何显示窗体以及设置它的位置和大小
首先该类需要继承Frame,然后在类里创建一个方法frame,输入设置窗体:

public class WenXianShiYan extends Frame {private static final long serialVersionUID = 1L;public void frame(){setSize(500, 500);//设置窗体大小(宽高)setLocation(100, 100);//设置窗体的位置,以电脑屏幕的左上角为原点,纵向y轴,横向x轴setVisible(true);//窗体默认为不显示(false),所以要设置为true}public static void main(String[] args) {WenXianShiYan shiYan=new WenXianShiYan();shiYan.frame();}
}

但会发现,该窗口不能关闭,所以,需要添加一个窗口的监听事件,重写关闭方法。

addWindowListener(new WindowAdapter() {//在frame方法里加入窗体监听事件public void windowClosing(WindowEvent e) {System.exit(0);
}});

第二个问题:如何在窗体里面写入所要加载的内容

在类里重写属于frame的paint方法在frame方法里,g就相当一支画笔,可以更换颜色,可以画线,画圆,画矩形,等等。

g.drawLine(x1,y1,x2,y2); //画线 两点绘一线(每个点都是以窗体左上角为原点)
g.drawRect(x,y, width, height);//画矩形 设置xy点,以该点为矩形左上角点
g.drawOval(x,y, width, height);//画圆 同矩形原理得出矩形,画出矩形内切圆g.fillRect(x, y, width, height);//画实心矩形
g.fillOval(x, y, width, height);//画实心圆

第三个问题:如何让内容简单的动起来
首先在paint方法里面绘制一个实心圆,设置颜色为蓝色;

public void paint(Graphics g) {Color c=g.getColor();g.setColor(Color.BLUE);g.fillOval(100, 100, 20, 20);g.setColor(c);}

改变颜色前先把最原始的颜色保存一下,之后改变完颜色后,要把颜色设置回原始的颜色。

然后在类里创建一个内部类,PaintThread,继承线程Thread类,最后再该类里重写run方法,在方法里使用while死循环,调用repaint();每调用一次,睡眠一次。

class PaintThread extends Thread{@Overridepublic void run() {while (true) {repaint();try {Thread.sleep(50);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

最后在frame方法里,启动线程;

new PaintThread().start();

启动线程后,窗口内容不断的重画,接下来只有要将x和y作为成员变量,不停的变化即可。

double x,y;public void paint(Graphics g) {Color c=g.getColor();g.setColor(Color.BLUE);g.fillOval((int)x, (int)y, 20, 20);g.setColor(c);x+=3;y+=2;}

想要横着走,就自增x或自减x,想要竖着走,就自增y或自减y,那想要弯着走,也是可以实现的。

x2(自身x) = 200(中心点x) + 100(长轴) * Math.cos(degree1);
y2(自身y) = 200(中心点y) + 50(短轴) * Math.sin(degree1);
degree1 += 0.1;
而角度加的越多,就代表走一圈越快,那么这个0.1不就可以变成变量代表速度speed
这样就可以走圆形或者椭圆了,那么做太阳系模型就是手到擒来了。

使用Java制作太阳系模型(1)相关推荐

  1. 用java画太阳图_使用Java制作太阳系模型(3)

    开发工具与关键技术:MyEclipse 10.JAVA 作者:曾浩源 撰写时间:2019年04月22日 做任何程序都离不开良好的封装,封装好自己代码,到时候传变量到方法,即可一步到位.像太阳系,虽然它 ...

  2. matlab制作太阳系模型,做太阳系模型作文

    做太阳系模型作文 太阳系是一个大家族,八颗行星是它的主要成员,根据已经掌握的太阳系的资料,让我们一起做一个太阳系模型吧! 制作太阳系模型的步骤如下: 首先准备好制作材料:各色橡皮泥.泡沫板或其他平板. ...

  3. unity3d按照一定比例制作太阳系模型

    * 所有模型直径和轨道直径均按照1:10万km比例制作,所有行星公转角速度大致参照真实角速度绕太阳旋转,有卫星的基本也按照真实角速度绕中心天体旋转 * 通过滑杆控制前进后退速度(左边滑杆)和上下移动( ...

  4. java编写太阳_java绘图--太阳系模型

    java绘图在工作中使用的并不是很多,但是从这种小程序中用到很多基本知识和编程理念,最重要的是,可以很快的看到效果,体会到学习java的乐趣,不像C语言那样,学了很久却不知道学了有什么用,在枯燥的学习 ...

  5. 用JAVA制作抓老鹰游戏_Java制作最难练手速游戏,Faker都坚持不了一分钟

    原标题:Java制作最难练手速游戏,Faker都坚持不了一分钟 想练手速,来啊,互相伤害啊 Java制作最难练手速游戏,目测Faker也坚持不了一分钟 制作思路:只靠Java实现.Java.Java. ...

  6. DeepLearning4j-使用Java训练YOLO模型

    DeepLearning4j-使用Java训练YOLO模型 在这个Yolo v3发布的大好日子. Deeplearning4j终于迎来了新的版本更新1.0.0-alpha,在zoo model中引入T ...

  7. python绘制太阳系模型_太阳系模型Python列表操作困难

    这是我在这里的第一篇文章. 所以我尝试用可视化的python制作一个太阳系模型.我将每个行星定义为一个球体,有半径.与太阳的距离.质量和动量变量.然后将每个行星(或天体)放入一个列表结构中.正如你现在 ...

  8. java制作QQ聊天工具——1最起码知识点

    本人刚刚用java制作了一个简单的QQ聊天系统,虽然挺简陋的,但还是和大家分享一下心得,因为在这个过程中,我也遇到了好多问题,上网各种百度搜索,但根本原因在于自己java基础没有打好,对一些概念性的东 ...

  9. 软件测试学java,软件测试学习Java的内存模型

    原标题:软件测试学习Java的内存模型 软件测试学习Java的内存模型 主内存与工作内存 定义程序中各个变量的访问规则. 规定JVM必须遵循的最小保证. 定义操作的偏序关系.Happens-Befor ...

最新文章

  1. Map json数据解析
  2. Leetcode刷题 155题: 最小栈(基于python3和c++两种语言)
  3. linux版视频转换软件,居家旅行必备的Linux视频转换工具
  4. [转载]开源网管软件对比 - Nagios OpenNMS Zenoss
  5. ElasticSearch 面试 4 连炮,你顶得住么?
  6. delete mysql 大表_无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”!
  7. CUDA 编程上手指南:CUDA C 编程及 GPU 基本知识
  8. 04 | 内存快照:宕机后, Redis 如何实现快速恢复
  9. aix oracle查看字符集,AIX下oracle 10g 修改字符集为ZHS16GBK
  10. 阻塞、非阻塞、同步与异步
  11. db2 mysql sql server_连接数据库的方法(Oracle DB2 SQL Server MySQL...)
  12. 抢疯了!不到5分钟 三星Galaxy Fold国行版即全网告罄
  13. Linux CentOS 中安装 MySql
  14. 怎么让拿到的字符串类型的值去掉双引号显示_python入门系列:Python数据类型
  15. 点译PDF的翻译器或者PDF阅读器插件
  16. 网络基础虚拟化VRRP/MSTP冗余技术
  17. 服务器系统漏洞修补记录,服务器安全狗之系统漏洞修复教程与实例
  18. ff14 人最多的服务器,记录FF14全服人数最少的服务器红茶川
  19. 西瓜书(周志华):什么是版本空间以及如何求取版本空间
  20. 电子学会2020年9月青少年软件编程(图形化)等级考试试卷(一级)答案解析

热门文章

  1. tf.keras.layers.Conv2D
  2. Kubernetes容器存储:请选对的
  3. MetaSploit攻击实例讲解------社会工程学set攻击(kali linux 2016.2(rolling))(详细)
  4. 兵贵神速 掌握这10个python技巧,让你代码工作如鱼得水
  5. 倍福:TwincAT配置汇川EtherCAT伺服,NC有数值变化,但电机不转,NC报错17744
  6. Kinect第二天:翻译
  7. MATLAB输入x标签,matlab中xlabel,ylabel,legend和text函数中使用latex
  8. python爬虫免费代理池_【Python3爬虫】教你怎么利用免费代理搭建代理池
  9. 孩子喜欢的启蒙学习工具,支持更多教材和绘本,机器岛AI双点笔体验
  10. 62.日常问题整理[2023/02/20]excel获取列个数 getPhysicalNumberOfCells 和 getLastCellNum