用java的框架和面板的知识做的一个展示月食过程的小程序。这里的想法就是先把背景设置成黑色,然后画一个黄色的圆作为月亮,接着画一个黑色的圆,将它的y坐标与月亮相同,让这个x不断的自增,(这个x代表的是fillArc()里面的那个其实位置坐标)然后很关键的两个方法是sleep()和repaint()这两个,它们可以近似于让屏幕的内容不断的刷新,当与月亮重合时,黑色就会覆盖掉黄色,这样就让人觉得是月亮在变化。

有兴趣的朋友可以添加更多元素在里面。

import javax.swing.JFrame;

public class MyMoonFrame {

public static void main(String[] args) {

JFrame frame= new JFrame();

frame.setSize(1024,768);

frame.setLocation(100,100);

MyMoonPanel panel=new MyMoonPanel();

frame.add(panel);

panel.startRun();

frame.setVisible(true);

}

}

这是panel文件

package day3;

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JPanel;

public class MyMoonPanel extends JPanel{

int x=700;

public void startRun(){

new Thread(){

public void run(){

while(true){

//让要去覆盖月亮的黑圆的横坐标坐标不断自增

//这样去接近月亮和远离,造成月亮变化的效果

for (int i=0;i<1024;i++){

x++;

if(x>1024){

x=0;

}

}

try {

//让线程休眠10毫秒

Thread.sleep(10);

}

catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//刷新屏幕,自动调用paint()方法

repaint();

}

}

}

.start();

}

public void paint(Graphics g){

super.paint(g);

//设置背景

this.setBackground(Color.black);

//月亮

g.setColor(Color.yellow);

g.fillArc(500, 100, 200, 200, 0, 360);

//设置将去覆盖月亮的黑色圆

g.setColor(Color.black);

g.fillArc(x, 100, 200, 200, 0, 360);

}

}

之前一直没想到用fillArc()来画黑圆,通过起始位置的变化来改变黑圆的位置,结果一直考虑怎么用代码画出一个圆然后改变坐标的值,这样做明显很不容易实现。

效果:

总结

有关eclipse包和类的创建这里就不说了,代码中有一点小瑕疵,大家可自行导入类。

以上就是本文关于Java编程实现月食简单代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

感谢朋友们对本站的支持。

java月亮代码_Java编程实现月食简单代码分享相关推荐

  1. java range(10)_Java 中的十个 ” 单行代码编程 ” ( OneLiner )

    原标题:Java 中的十个 " 单行代码编程 " ( OneLiner ) 作者:飒然Hang 原文链接:www.rowkey.me/blog/2017/09/09/java-on ...

  2. java一个方法排他调用_Java编程实现排他锁代码详解

    一 .前言 某年某月某天,同事说需要一个文件排他锁功能,需求如下: (1)写操作是排他属性 (2)适用于同一进程的多线程/也适用于多进程的排他操作 (3)容错性:获得锁的进程若Crash,不影响到后续 ...

  3. java 输出当前行号_Java编程实现获取当前代码行行号的方法示例

    本文实例讲述了Java编程实现获取当前代码行行号的方法.分享给大家供大家参考,具体如下: 最近的项目中,为了实现自定义的log类,能够输出具体的代码行行号,我通过使用StackTraceElement ...

  4. java实现通话_Java做一个最简单的通话程序

    Java做一个最简单的通话程序 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一.在Java ...

  5. java 官方教程_Java编程入门官方教程(第7版)

    目录 第1章 Java基础 1.1 Java的起源 1.2 Java对Internet的贡献 1.2.1 Java简化了基于Web的编程 1.2.2 Java applet 1.2.3 安全性 1.2 ...

  6. java基础深入_java编程基础之方法深入

    大纲 方法入门 概述 前讲解的循环操作,可以解决的是代码重复的问题,但是此时的重复的代码必须是有规律的.那循环操作,能解决所有的代码重复吗?答案肯定是不行的,比如针对于某一种功能的重复操作,循环就无法 ...

  7. 简单的计算机程序代码,优秀程序员通过简单代码,窥探电脑编程中强大的数组操作功能...

    优秀程序员通过简单代码,窥探电脑编程中强大的数组操作功能.编程语言中,数组是一个非常重要的概念,也是一种很常用的类型.本文中通过javascript语言的代码实例,展现编程中数组的魅力.在javasc ...

  8. java udp聊天_Java UDP实现聊天功能代码

    我以前经常写的是基于TCP的网络编程,由于TCP建立连接鼻血要经过三次握手连接,服务器端需要阻塞式等待客户端的连接.而UDP则是可以直接向目的地址的目的端口上发送数据包,由于它只负责发送出去就好,不管 ...

  9. 一文带你深入理解【Java基础】· 面向对象编程(下)②代码块、final和abstract

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  10. java 到异常_java编程中遇到的异常以及异常的一些处理

    n 异常的概念 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户? 比如除法运算.读写文件操作,都可能 ...

最新文章

  1. GOF23设计模式(创建型模式)工厂模式
  2. Windows Performance Toolkit
  3. MySQL:Database connections will be migrated官方说明
  4. 1.6 三维卷积-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. 抢红包神器上线,再也不怕抢不到红包了!
  6. LiveVideoStackCon 2018公布优秀出品人与讲师
  7. Linux模块加载流程及如何让系统开机自动加载模块
  8. linux 7修改主机名重启后不生效_Linux 中改变主机名的 4 种方法 | Linux 中国
  9. Spark用DSL表达式如何使用row_number函数
  10. 初次体验.net Ajax无刷新技术
  11. RRR-RR五边形平面并联机构分析:Kinematics of a five-bar RRR-RR mechanism
  12. proteus仿真Arduino
  13. java中 implement_详解JAVA中implement和extends的区别
  14. FPGA数字鉴相鉴频器的开发记录
  15. 古罗马花园石头雕像喷泉原理
  16. 关于字符串中length与length()的区别
  17. 计算机中ufc是什么意思中文,ufc是什么意思,ufc是什么意思中文
  18. git clone 报错 Permission denied (publickey,password).git配置ssh key
  19. Python 获取当前时间 年-月-日-时-分-秒
  20. 白嫖我珍藏已久的在线小工具【第一弹】

热门文章

  1. 003-信息技术学科知识与教学能力
  2. 计算机音乐修炼爱情,林俊杰/于竞超/苏阳/陈蓝杰《修炼爱情 (Live)》[FLAC/MP3-320K]...
  3. 【打一局王者荣耀掉星的时间,我制作了一款支持 重力感应 的 3D动态壁纸】
  4. 苹果HomeKit生态深度解析,在智能家居领域后发制人?
  5. Java不同字符使用下划线分隔_004_Java语言基础(a-变量)
  6. [Cydia] 使用Cydia安装iPA破解补丁教程
  7. 万元大奖和Switch等你来拿,百度飞桨AI创造营带你出道
  8. 1-2 实验2 点对点通信
  9. C语言打印数据的二进制格式-原理解析与编程实现
  10. 从外包月薪5K到阿里月薪15K,大厂面试必备技能