java实现满天星swing&awt
一起有两个类
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的更多相关文章
- 十一:Java之GUI图形Awt和Swing
一. AWT和 Swing AWT 和 Swing 是 Java 设计 GUI用户界面的基础.与 AWT 的重量级组件不同,Swing 中大部分是轻量级组件.正是这个原因,Swing 差点儿无所不能, ...
- Java中的Swing及AWT又称GUI编程
Java中的Swing及AWT又称GUI编程. 关于学习Java要不要学Swing及AWT,这个完全取决于个人的开发及发展方向. 如果从事web方向的开发,则可以不用学习Swing及AWT. 如果从事 ...
- Java界面设计 Swing(1)
Java界面设计的用途 开发者可以通过Java SE开发丰富并且强大的具有图形界面的桌面应用程序.也可以设计一些提高效率的工具软件,帮助自己处理机械性工作. Java 的图形界面工具包,可以用于工具类 ...
- Java学习之Swing Gui编程
Java学习之Swing Gui编程 0x00 前言 前面的使用的Gui是基于Awt 去进行实现,但是在现实写Gui中 AWT实际运用会比较少. 0x01 Swing 概述 AWT 和Swing 区别 ...
- 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: 这是 ...
- Atitit。Js调用后台语言 java c# php swing android swt的方法大总结
Atitit.Js调用后台语言 java c# php swing android swt的方法大总结 1. Js调用后台语言有三种方法1 2. Swt BrowserFunction 绑定方法 ...
- JAVA简单的SWING及AWT
慢慢找感觉~~ package SwingGui.sky.com; import javax.swing.*; import java.awt.*; import java.awt.event.*; ...
- java中GUI的awt和Swing的知识点
刚刚学习了java的GUI,写了几个程序,基本熟悉了awt和Swing,下面和大家分享一下知识点 1.JFrame的层次结构 参考:http://tieba.baidu.com/p/200421612 ...
- Java GUI编程中AWT/swing/SWT的优缺点
http://www.cnblogs.com/dugang/archive/2010/10/22/1858478.html AWT AWT是Abstract Window Toolkit(抽象窗口工具 ...
随机推荐
- 使用grep排除空行和注释行
grep的排除选项为 -v排除空行的命令是:grep -v '^$' filename排除以#注释的命令是:grep -v '^#' filename 结合起来就是,既排除空行又排除注释行的命令gre ...
- CXF2.7整合spring发布webservice
---------==========--服务端发布webservice-=============-------- 1.需要的jar包: 2.包结构 3.代码 1.实体类 package cn.ql ...
- CF1096E The Top Scorer
题目地址:洛谷CF1096E 本场AC数最少 (最难) 的题目 题目大意:给出三个数p , s,r,表示有p人,每个人都有一个非负得分,所有人的得分和为s,Hasan的得分至少为r,求Hasan是第一 ...
- Matlab调用C程序
Matlab调用C程序 复制来自https://blog.csdn.net/u010839382/article/details/42463237 Matlab是矩阵语言,如果运算可以用矩阵实现, ...
- 题解-CodeForces835F Roads in the Kingdom
Problem CodeForces-835F 题意:求基环树删去环上任意一边后直径最小值,直径定义为所有点对最近距离的最大值 Solution 首先明确删去环上一点是不会影响树内直径的,所以应当先把 ...
- hibernate框架学习之Session管理
Session对象的生命周期 lHibernate中数据库连接最终包装成Session对象,使用Session对象可以对数据库进行操作. lSession对象获取方式: •加载所有配置信息得到Conf ...
- 鸟哥Linux私房菜基础学习篇学习笔记1
鸟哥Linux私房菜基础学习篇学习笔记1 第三章 主导分区(MBR),当系统在开机的时候会主动去读取这个区块的内容,必须对硬盘进行分区,这样硬盘才能被有效地使用. 所谓的分区只是针对64Bytes的分 ...
- Java链接DB2的4种基本类型【转】
原文链接:http://doc.chinaunix.net/java/201002/776480.shtml 第一种:目前IBM一直都没有提供 TYPE 1的JDBC驱动程序. 第二种:类型2驱动:C ...
- MYSQL 查看最大连接数和修改最大连接数
MySQL查看最大连接数和修改最大连接数 1.查看最大连接数show variables like '%max_connections%';2.修改最大连接数set GLOBAL max_connec ...
- 【原创】大数据基础之Benchmark(2)TPC-DS
tpc 官方:http://www.tpc.org/ 一 简介 The TPC is a non-profit corporation founded to define transaction pr ...