源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java编程实现月食简单代码分享

  • 时间:2022-10-21 04:14 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java编程实现月食简单代码分享
用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()来画黑圆,通过起始位置的变化来改变黑圆的位置,结果一直考虑怎么用代码画出一个圆然后改变坐标的值,这样做明显很不容易实现。 效果: [img]http://files.jb51.net/file_images/article/201711/20171121150458714.png?2017102115516[/img] [b]总结[/b] 有关eclipse包和类的创建这里就不说了,代码中有一点小瑕疵,大家可自行导入类。 以上就是本文关于Java编程实现月食简单代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站: [url=http://www.1sucai.cn/article/124895.htm][b]详解Java编写并运行spark应用程序的方法[/b][/url] [url=http://www.1sucai.cn/article/123421.htm][b]Java小程序求圆的周长和面积实例[/b][/url] [url=http://www.1sucai.cn/article/123400.htm][b]Java小程序计算圆周率代码[/b][/url] 感谢朋友们对本站的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部