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(抽象窗口工具 ...
随机推荐
- ubuntu14.04升级mysql5.5至mysql5.7
原文链接:https://www.cnblogs.com/os-python/p/6842485.html 1.下载mysql-apt的配置包,并安装 wget https://dev.mysql.c ...
- 使用@Valid和BindingResult验证请求参数的合法性并处理校验结果
/** * 添加用户,使用@RequestBody将请求体映射到Action方法参数中 * 使用@Valid注解验证请求参数的合法性 * 使用BindingResult处理校验结果 * @param ...
- LwIP Application Developers Manual3---链路层和网络层协议之IPV6,ICMP,IGMP
1.前言 本文主要讲述链路层和网络层的协议IPV6,ICMP 2.IPV6 2.1 IPV6特性 IPv6是IPv4的更新.其最显著的差别在于地址空间由32位转换成128位 2.2 从应用的角度看IP ...
- 解决ubuntu的gedit编辑器中文乱码的问题
hello,本人 sky 又和大家见面了很多人在使用ubuntu系统时发现打开windows系统下面写的文档的话会发现乱码,是因为编码格式的问题windows系统下面是用GB2312等编码格式进行中文 ...
- Windows PowerShell 入門(2)-基本操作編 2
前回に引き続きMicrosoftが提供している新しいシェル.Windows Power Shellの基本操作方法を学びます.基本操作編第2弾の今回は.パイプの使用方法を中心としたコマンドレットの操作方 ...
- 拿什么守护你的Node.JS进程: Node出错崩溃了怎么办?
被吐嘈的NodeJS的异常处理 许多人都有这样一种映像,NodeJS比较快: 但是因为其是单线程,所以它不稳定,有点不安全,不适合处理复杂业务: 它比较适合对并发要求比较高,而且简单的业务场景. 在E ...
- 设计模式C++学习笔记之二十(完结篇 & 面向对象原则)设计模式C++实例下载
Prototype(原型模式) 20.1.解释 概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. main(),客户 ICloneableNow,只有一个接口Clone CM ...
- svn服务器镜像备份
server master 192.168.0.100-->源版本库 server slave 192.168.0.101-->镜像版本库 1.初始化svnsync init s ...
- List<> of struct with property. Cannot change value of property. why?
这个返回如下错误:"Cannot modify the return value of 'System.Collections.Generic.List<MyStruct>.th ...
- ubuntu Qt linuxdeployqt打包
1.下载PatchELF 0.9.,https://nixos.org/patchelf.html 安装:./configure make sudo make install 2.终端命令设置设置环境 ...