刚接触到java,觉得这些东西很好玩儿。这里用框架和面板画一个动态的下雪的过程。
首先是frame文件
package day02;
import javax.swing.JFrame;
public class MySnowFrame {
public static void main(String[] args) {
JFrame frame= new JFrame();
frame.setSize(1440, 900);
frame.setLocation(0, 0);
MySnowPanel panel = new MySnowPanel();
frame.add(panel);
panel.startRun();
frame.setVisible(true);
}
}
接着是panel文件
package day02;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;
public class MySnowPanel extends JPanel{
int[] xx=new int [1440];
int[] yy =new int[900];
public MySnowPanel(){
Random ran=new Random();
for(int i=0;i<300;i++){
xx[i]=ran.nextInt(1440);
yy[i]=ran.nextInt(900);
}
}
public void startRun(){
new Thread(){
public void run(){
while(true){
for(int i=0;i<200;i++){
yy[i]++;
xx[i]++;
if(yy[i]>900){
yy[i]=0;
}
if(xx[i]>1440){
xx[i]=0;
}
}
try {
//让线程休眠十毫秒
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
}.start();
}
public void paint(Graphics g){
super.paint(g);
this.setBackground(Color.black);
g.setColor(Color.white);
//创建一个字体对象 宋体30号加粗
Font font=new Font("宋体",Font.BOLD,30);
//设置画笔的字体
g.setFont(font);
for(int i=0;i<200;i++){
g.drawString("*", xx[i], yy[i]);
}
}
}