//第一个java文件thread_star.java:

package solarsystem;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;

import javax.swing.JPanel;

class thread_star extends Thread
{
int x0;
int y0;
int r0;
int d0;
double angle;
thread_star(int x,int y,int r,double a)
{
x0=x;
y0=y;
r0=r;
d0=x0-960;
angle=a;
}
public void run()
{double an=angle/3;
while(true)
{
x0=(int) (960+d0*Math.cos(angle));
y0=(int) (540+d0*Math.sin(angle));

angle=angle+an/10;
try {
sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class draw_star extends JPanel
{
thread_star s[]={new thread_star(1300,540,30,(Math.PI/20)),new thread_star(1700,540,40,(Math.PI/40))
,new thread_star(1400,540,25,(Math.PI/30)),new thread_star(1620,540,30,(Math.PI/36)),
new thread_star(1180,540,18,(Math.PI/10))
};
draw_star()
{
for(int i=0;i<s.length;i++)s[i].start();
this.setBackground(Color.black);
}
public void paint(Graphics g)
{
g.setColor(Color.black);
g.fillRect(0, 0, getWidth(), getHeight());
//this.setBackground(Color.BLACK);
super.paint(g);

}
public void paintComponent(Graphics g0)
{
this.setBackground(Color.black);
Graphics2D g=(Graphics2D)(g0);
g.setColor(Color.yellow);
g.fill(new Ellipse2D.Double(960-80,540-80,160,160));
Color c[]={Color.blue,Color.GRAY,Color.orange,Color.RED,Color.red};
for(int i=0;i<s.length;i++)
{
g=(Graphics2D)(g0);
g.setColor(c[i]);
g.fill(new Ellipse2D.Double(s[i].x0-s[i].r0,s[i].y0-s[i].r0,2*s[i].r0,2*s[i].r0));
}
repaint();
}

}

//第二个java文件J_Frame.java:

package solarsystem;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;

import javax.swing.JFrame;

public class J_Frame extends JFrame
{
J_Frame()
{
super("太阳星系图");
draw_star d=new draw_star();
Container c=getContentPane();
c.setBackground(Color.BLACK);
c.add(d);
this.setBackground(Color.black);
}
public static void main(String args[])
{

J_Frame j=new J_Frame();
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setSize(1920, 1080);
j.setVisible(true);
}
}

运行结果图示:

JAVA图形小动画之简单行星运动的更多相关文章

  1. Rebound动画框架简单介绍

    Rebound动画框架简单介绍 Android菜鸟一枚,有不对的地方希望大家指出,谢谢. 最近在接手了一个老项目,发现里面动画框架用的是facebook中的Rebound框架,由于以前没听说过,放假时 ...

  2. Java 图形界面开发--图文并茂建立学生管理系统

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...

  3. Java图形用户界面编程

    1.Java图形用户界面编程概述 JavaAPI中提供了两套组件用于支持编写图形用户界面:AWT(抽象窗口包)和Swing 2.  容器(Container):重量级容器和轻量级容器(一个容器可以放置 ...

  4. java中Color类的简单总结

    java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 publi ...

  5. 安装linux下面用来配置网络,防火墙,系统服务等设置的图形小工具Setup

    Setup命令是linux下面用来配置网络,防火墙,系统服务等设置的图形小工具.使用起来非常方便简单,可是centos\redhat最小化安装之后发现setup命令工具用不了. 接下来介绍如何安装se ...

  6. 【Android】第21章 2D图形和动画

    分类:C#.Android.VS2015: 创建日期:2016-03-19 一.简介 Android系统定义了一系列独立的图形处理类,其中,2D图形处理类分别位于以下命名空间: Android.Gra ...

  7. 【转】java图形界面设计(AWT)

    [转自]http://blog.sina.com.cn/s/blog_616e189f0100ne1t.html 1.       基本的java Frame操作. Java的图形界面的类主要包括AW ...

  8. 使用SpannableString实现一个load小动画

    依然是github开源项目:WaitingDots 这个项目代码不多,实现的非常easy.可是非常有意思由于动画的基本元素不是画出来的,而是使用了spannableString来实现. DotsTex ...

  9. java图形界面设计

    1.       基本的java Frame操作. Java的图形界面的类主要包括AWT和Swing.在AWT中图形元素的父类为Component. 继承关系如下:Component->Cont ...

随机推荐

  1. 【Trie】Immediate Decodability

    [题目链接]: https://loj.ac/problem/10052 [题意]: 就是给一些串,是否存在两个串是相同前缀的. [题解] 模板题,不想解释了. [代码]: #include<c ...

  2. 用Lua的协程实现类似Unity协程的语句块

    local co_time_tbl = {} setmetatable(co_time_tbl, { __len = function(o) for k, v in pairs(o) do count ...

  3. javascript——获取元素方式

    //1:依据id //var element = document.getElementById("test"); console.log(element); //2:依据clas ...

  4. Redis 消息队列 初体验

    队列之生产者.消费者模式 using System; using System.Threading; using NServiceKit.Redis; namespace ConsoleApplica ...

  5. centos7 + postgresql10

    mysql被黑惨了,换了个超复杂的密码都不行,黑客会删除你所有的自定义库,然后插一个warning表,让你给他汇比特币. 提醒大家放在在公网的DB,要非常注意数据的安全性,万一被勒索了,真是mmp了. ...

  6. Google开源项目风格指南

    Google开源项目风格指南 来源 https://github.com/zh-google-styleguide/zh-google-styleguide Google 开源项目风格指南 (中文版) ...

  7. 检查一个string是否包含List<string>中的任意一个

    bool b = listOfStrings.Any(s=>myString.Contains(s)); 应用在where子句中的示例: //获取路径 var groupPaths = grou ...

  8. BFC渲染机制

    BFC(block formatting context):块级格式化上下文(实际就是一个隔离罩) W3C CSS2.1 规范中的一个概念.它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元 ...

  9. mpvue + 微信小程序 picker 实现自定义多级联动 超简洁

    微信小程序官网只提供了省市区的三级联动,实际开发中更多的是自定义的多级联动: 依照微信小程序官网提供的自定义多级联动,需要使用到picker 的多列选择器,即设置 mode = multiSelect ...

  10. jQuery EasyUI 拖放 – 基本的拖动和放置

    jQuery EasyUI 拖放 - 基本的拖动和放置 在jQuery EasyUI中,可以实现HTML元素的基本拖动和放置. <div id="dd1" class=&qu ...