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(抽象窗口工具 ...
随机推荐
- 【编程拾遗】C++的static成员函数与单例模式
static小结 static的引入 static 是C++中非经常常使用的修饰符,它被用来控制变量的存储方式和可见性. 函数内部定义的变量,在程序运行到它的定义处时,编译器为它在栈上分配空间,函数在 ...
- Django实战(一)-----用户登录与注册系统4(表单)
我们前面都是手工在HTML文件中编写表单form元素,然后在views.py的视图函数中接收表单中的用户数据,再编写验证代码进行验证,最后使用ORM进行数据库的增删改查.这样费时费力,整个过程比较复杂 ...
- NandFlash和iNand【转】
转自:https://www.cnblogs.com/PengfeiSong/p/6380447.html nand 1.nand的单元组织:block与page(大页Nand与小页Nand)(1)N ...
- 定制化rpm包及本地yum仓库搭建
为方便本地yum的管理,一般都是在公司局域网内搭建本地yum仓库,实现公司内部快速安装常用软件. 步骤如下: 1.搭建要实现本地yum管理的软件,测试该软件搭建成功与否: 2.定制rpm包及其相关依赖 ...
- 题解-ZJOI2015地震后的幻想乡
Problem bzoj & 洛谷 题意简述:给定一个\(n\)(\(n\leq 10\))个点\(m\)条边的无向图,每条边的权值为一个\(0\)到\(1\)之间的连续随机变量,求图的最小生 ...
- 激活函数Sigmoid、Tanh、ReLu、softplus、softmax
原文地址:https://www.cnblogs.com/nxf-rabbit75/p/9276412.html 激活函数: 就是在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端. 常见 ...
- JSON.stringify与JSON.parse
JSON.stringify(value [, replacer] [, space]) 用于将 对象 --> JSON 字符串. value:对象.数组.类 replacer: 数组时:v ...
- Fiddler模拟低速网络
1. 打开 Rules -> Customize Rules,ctrl + F 找 300 2.修改上传.下载速度,保存 ctrl + s 3.启动模拟网络限速 4.想要取消模拟网络限速,取消勾 ...
- T-SQL删除存储过程
使用T-SQL脚本删除存储过程 语法: --声明数据库引用use 数据库名称;go --判断是否存在存储过程,如果存在则删除if exists(select * from sys.procedures ...
- Android获取本机号码及运营商
import android.content.Context; import android.telephony.TelephonyManager; import android.util.Log; ...