五彩的闪动的小星星
来源:互联网 发布:怎么运行mysql 编辑:程序博客网 时间:2024/04/28 12:23
闪动的小星星
一.最终需求:
二.涉及到的知识:
JavaSE中Swing ,Random(),paint(),repaint();Timer(),
Toolkit.getDefaultToolkit().getScreenSize(),鼠标事件,
三.设计思路(倒序思想)
1.先定义一个窗体,即 new Star();
2.再定义一个面板,这个面板用于显示内容,用paint(Graphics g)函数来绘制。
3.将面板加入到窗体中,给窗体要显示的大小并且为视图可见。
4.此时运行只有一次绘制,我们可以使用多线程来使的它隔一段时间重绘一次,但是有更好的方法,定时器。再结合repaint()这个方法,实现隔一段时间重绘的效果。
5.加入事件处理,使得功能更人性化。
四.源代码:
package com.star;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyPanel extends JPanel{
private static final longserialVersionUID = 1L;
int starNum=200;
int[] x=new int[starNum];
int[] y=new int[starNum];
Random r=new Random();
//构造函数
public MyPanel(){
setBackground(Color.black);
}
@Override
public void paint(Graphicsg) {
super.paint(g);
//绘制月亮
g.setColor(Color.white);//设置画笔颜色
g.fillOval(800, 100,100, 100);
g.setColor(Color.black);//设置画笔为黑色
g.fillOval(770, 100,100,100);
for (int i = 0; i<starNum; i++) {
intstarSize=r.nextInt(50);
Font font=newFont("宋体",Font.BOLD,starSize);
Colorcolor=new Color(r.nextInt(0xFFFFFF));
g.setFont(font);
g.setColor(color);
x[i]=r.nextInt(Star.dd.width);
y[i]=r.nextInt(Star.dd.height);
g.drawString("*",x[i], y[i]);
}
}
public void move() {
Timer timer=new Timer();
timer.schedule(new TimerTask() {
@Override
public voidrun() {
repaint();
}
},300,300);
}
}
public class Star extends JFrame{
private static final longserialVersionUID = 1L;
//获取屏幕尺寸(全屏显示)
public static Dimensiondd=Toolkit.getDefaultToolkit().getScreenSize();
//构造方法
public Star(){
//将面板添加到窗体
MyPanel pane=newMyPanel();
pane.move();
add(pane); //添加到窗体
setSize(dd.width,dd.height);
//去掉窗体边框修饰
setUndecorated(true);
//显示界面
setVisible(true);
//添加监听器,用户交互,鼠标安息下后退出本程序
MouseAdapter ma=newMouseAdapter() {
@Override
public voidmousePressed(MouseEvent e) {
System.exit(0);
}
};
addMouseListener(ma);
}
public static voidmain(String[] args) {
new Star();
}
}
本内容由安康学院”雨季”原创!
- 五彩的闪动的小星星
- 别人的评价小星星
- 急需“五彩连珠”小游戏的代码
- 五彩趣味运动会的起源与发展
- 字体闪动的特效!
- Android闪动的文字效果
- 走马灯闪动的TextView
- 闪动的TextView
- 设置光标的闪动间隔
- 页面title的闪动效果
- C#制作闪动的窗体
- android制作闪动的红心
- 闪动的文字效果(渲染)
- 人民币上的人物和他们的五彩人生
- 扯一片五彩的云霞,来装饰梦的色彩
- Android 自定义ratingBar(评分小星星)的使用
- jQuery编写动态评分小星星的插件
- 评价小星星显示不全的问题
- git merge失败后处理方法
- 简单工厂模式
- Windows编程基础--第15节 MFC之复选框及单选按钮
- java-死锁现象及解决方法
- LintCode 数字三角形
- 五彩的闪动的小星星
- TensorFlow:Object_Detection_API在Windows10上的配置
- 深度学习中的损失函数总结
- 【转】小波变换
- C++输入输出文件流(fstream)
- Python中斐波那契数列的四种写法
- javascript中call、apply、bind方法的区别
- Linux安装JDK&Mysql&tomcat
- Socket 网络编程实践经验