一起有两个类

1.MyStar.java

package day02;

import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;

/**
* 满天星
* @author BruceLong
* */
public class MyStar {

public static void main(String[] args) {
// TODO Auto-generated method stub
// 窗口 一切皆对象
// 老婆 小丽 = 新 老婆
// 闺蜜 小三 = 新 闺蜜
JFrame frame = new JFrame();

/**添加画纸*/
MyStarPanel panel =new MyStarPanel();
//panel.setBackground(Color.BLACK);
frame.add(panel);
/**
* 线程添加 */
Thread t = new Thread(panel);
t.start();

// 设置关闭模式
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// 设置窗体标题
frame.setTitle("满天星_BruceLong");
// 设置窗体大小
frame.setSize(800, 600);
// 设置居中
frame.setLocationRelativeTo(null);
// 设置窗口可见
frame.setVisible(true);

//

}

}

2.MyStarPanel.java

package day02;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;

import javax.swing.JPanel;

/**
* 画布类
* 1.继承 JPanel 画布类
* @author BruceLong
*
* */
// 公共的 类 类名
// 公共的人 王云龙
// private //私有的

// 王思聪 继承 王健林
public class MyStarPanel extends JPanel implements Runnable {

// 声明变量数组
int[] xx = new int[100];
int[] yy = new int[100];

// 构造方法
public MyStarPanel() {
for (int i = 0;i <100;i++) {
xx[i] = (int)(Math.random()*800);
yy[i] = (int)(Math.random()*600);
}
}

// 画笔方法
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
// 2.设置背景颜色
this.setBackground(Color.BLACK);

// 6.画月亮 x,y,w,h
g.setColor(Color.pink);
g.fillOval(100, 100, 100, 100);

// 7.画月牙
g.setColor(Color.black);
g.fillOval(80, 80, 100, 100);

// 3.设置画笔颜色
g.setColor(Color.yellow);

// 4.设置字体大小
Font ft = new Font("微软雅黑",Font.BOLD,28);
g.setFont(ft);

// 5.满天星
for(int i = 0;i < 100;i++) {
// Math.random()随机函数0-1之间的double类型
// 0.99999 0.5*800 = 400.00(double)
// 400.00-->(int)强制转换---->400
//int x = (int)(Math.random()*800);
//int y = (int)(Math.random()*600);
int R = (int)(Math.random()*255);
int G = (int)(Math.random()*255);
int B = (int)(Math.random()*255);
Color color = new Color(R,G,B);
g.setColor(color);

g.drawString("*", xx[i], yy[i]);
}
// 1.画一颗小星星

//g.drawString("*", 30, 30);

}

@Override
public void run() {
// TODO Auto-generated method stub
while(true) {
// 1.修改坐标值
for(int i = 0;i <100;i++) {
int type = (int)(Math.random()*2);
if(type ==0) {
xx[i]++;
yy[i]++;
}else{
xx[i]--;
yy[i]++;
}

//xx[i]++;
//yy[i]++;
if(xx[i]>800) {
xx[i] = 0;
}
if(yy[i]>600) {
yy[i] = 0;
}
}
// 2.调用睡眠方法
try {
Thread.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
// 3.调用重绘方法
repaint();
}
}

}

java实现满天星swing&awt的更多相关文章

  1. 十一:Java之GUI图形Awt和Swing

    一. AWT和 Swing AWT 和 Swing 是 Java 设计 GUI用户界面的基础.与 AWT 的重量级组件不同,Swing 中大部分是轻量级组件.正是这个原因,Swing 差点儿无所不能, ...

  2. Java中的Swing及AWT又称GUI编程

    Java中的Swing及AWT又称GUI编程. 关于学习Java要不要学Swing及AWT,这个完全取决于个人的开发及发展方向. 如果从事web方向的开发,则可以不用学习Swing及AWT. 如果从事 ...

  3. Java界面设计 Swing(1)

    Java界面设计的用途 开发者可以通过Java SE开发丰富并且强大的具有图形界面的桌面应用程序.也可以设计一些提高效率的工具软件,帮助自己处理机械性工作. Java 的图形界面工具包,可以用于工具类 ...

  4. Java学习之Swing Gui编程

    Java学习之Swing Gui编程 0x00 前言 前面的使用的Gui是基于Awt 去进行实现,但是在现实写Gui中 AWT实际运用会比较少. 0x01 Swing 概述 AWT 和Swing 区别 ...

  5. Exception in thread "main" java.lang.UnsatisfiedLinkError: no awt in java.library.path:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no awt in java.library.path: 这是 ...

  6. Atitit。Js调用后台语言 java c#  php swing android  swt的方法大总结

    Atitit.Js调用后台语言 java c#  php swing android  swt的方法大总结 1. Js调用后台语言有三种方法1 2. Swt  BrowserFunction 绑定方法 ...

  7. JAVA简单的SWING及AWT

    慢慢找感觉~~ package SwingGui.sky.com; import javax.swing.*; import java.awt.*; import java.awt.event.*; ...

  8. java中GUI的awt和Swing的知识点

    刚刚学习了java的GUI,写了几个程序,基本熟悉了awt和Swing,下面和大家分享一下知识点 1.JFrame的层次结构 参考:http://tieba.baidu.com/p/200421612 ...

  9. Java GUI编程中AWT/swing/SWT的优缺点

    http://www.cnblogs.com/dugang/archive/2010/10/22/1858478.html AWT AWT是Abstract Window Toolkit(抽象窗口工具 ...

随机推荐

  1. openstack-----各种系统镜像制作

    本章内容     1.centos镜像制作 2.windows镜像制作 3.ubunt镜像制作 一.centos7镜像制作 1.检查系统是否支持kvm: egrep "(vmx|svm)&q ...

  2. 修改/dev/shm大小 tmps

    /dev/shm  在oracle开启AMM时发现/dev/shm下的空间不够用 WARNING: You are trying to use the MEMORY_TARGET feature. T ...

  3. Python笔记 【无序】 【三】

    #打开文件 os.open(file, flags[, mode]); file -- 要打开的文件 flags -- 该参数可以是以下选项,多个使用 "|" 隔开: os.O_R ...

  4. Go语言模拟实现简单的区块链

    一.创建项目 按照Go语言最佳实践的思路, 在工作空间下的src目录下创建 github.com/hangzhou-huxin/blokcchain目录作为我们的项目目录,然后用GoLand工具选中这 ...

  5. smarty半小时快速上手教程

    一:smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计.下载Smarty文件 ...

  6. gPRC学习笔记

    gPRC学习笔记 gPRC基础教程. gPRC官方文档. protobuf 3.0的简易教程. 什么是RPC RPC(remote procedure call) -- 远程过程调用(相对于本地调用的 ...

  7. 修改docker image存放位置

    修改镜像和容器的默认存放路径 指定镜像和容器存放路径的参数是--graph=/var/lib/docker,我们只需要修改配置文件指定启动参数即可.刚好有个300g盘的挂在/data目录上,所以在这个 ...

  8. 利用HBuilder将vue项目打包成移动端app

    事先准备,开发完成的web app项目(也可以利用vue-cli脚手架构建vue模板项目),npm run dev可以正常预览的项目 1,将项目目录下config文件内index.js中assetsP ...

  9. $Django 路飞学城项目简介

    - 基于极验实现动态验证码 - 在线视频播放:cc,HTML用的Flash - 基于Rest Framework实现 API接口 - 自定义rest认证token 认证 - 序列化以及自定义验证对请求 ...

  10. [转]PhpStorm中如何使用Xdebug工具,入门级操作方法(亲测有效)

    0 前言 网上试过很多方案,有的根本无效,有的是有效一段时间后失效,然而这个方法是一直有效果,所以留底记录一下 1 简介 PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速 ...