java 能否实现桌面下雪花的效果?使用swing?

Python011

java 能否实现桌面下雪花的效果?使用swing?,第1张

/*

*实现在窗体上随机布满300个雪花("*"),滚动

*在上次的课基础上增加了for循环(一次要产生300个变量),随机数,数组

*下面的序号为步骤

*/ import java.awt.* //(3)导入awt包

public class Star {

public static void main(String args[]) {

Frame w = new Frame() //(1)绘制窗体

w.setSize(1024,768) //(4)把窗体布满全屏

w.setBackground(Color.BLACK) //(5)背景为黑颜色

MyPanel mp = new MyPanel() //(7)把MyPanel对象mp,添加到窗体w上

w.add(mp)

Thread t = new Thread(mp)

t.start() //(12)启动线程

w.show()//(2)显示窗体

}

}

//(6)继承Panel类

class MyPanel extends Panel implements Runnable { //(11)实现Runnable接口

int x[] = new int[300]

int y[] = new int[300] //(8)定义300个数组变量 MyPanel(){

for(int i = 0i <300i++) {

x[i] = (int)(Math.random()*1024)

y[i] = (int)(Math.random()*768) //(9)当程序走到第6步的时候程序就会调用构成函数

} //由于随机数是从0-1之间的数任意产出所以x乘以1024,y乘以768再转换为int类型

}

public void paint(Graphics g) {

for(int i = 0i <300i++) {

g.setColor(Color.WHITE)

g.drawString("*",x[i],y[i])

//g.drawString("*",30,30) (7)绘制一个星星在屏幕的x=30,y=30的位置上

} //(10)绘制300个雪花,把坐标30,30,改成x[i],y[i]

} //做到这步可以实现在黑色的天空布满300个星星

public void run() {

while(true) { //(13)实现产生300个雪花往下落死循环

for(int i = 0 i <300i++) {

y[i]++ //(14)y坐标不断的+1

if(y[i] >768){ //(18)如果y轴坐标大于768时,则y = 0,回到窗体的顶部

y[i] = 0

}

}

try{ //(16)用try,catch解决线程休眠的异常

Thread.sleep(20) //(15)在每次y轴坐标+1后线程休眠20毫秒

}catch(Exception e) {}

repaint() //(17)雪花在新的位置重画

}

}

}

arges你是main方法穿进来的参数 也就是一个String数组

如果你用jdk来执行这个类的class文件的时候你输入 比如你这个是test.class

你输入 java test 11 22 33

这个时候arges 数组的值就是11 22 33 也就是有三个值 这个时候 arges.length就等于3

现在知道arges.length!=3的意思了把

下边的 iPara1 = Integer.parseInt(arges[0])

是给iPrar1 赋值 Integer.parseInt() 这个方法是把字符串转换成int

感觉这里写错了 应该写成 if(arges.length==3)

这个if else加起来的意思就是判断 arges是不是有三个值 如果是就把它们的值赋给int iPara1,iPara2,iEnd

如果不是就打印输出一些信息

希望能解决您的问题。

关于下雪的我是这么做的,你可以先点画笔,然后点“切换画笔调板”按钮,那些功能调一下,你就能看到那些效果了,然后再画出来就OK了,至于那些调设,我也是乱调的,没有多注意是什么值。不过还有另一种方法,是人造暴风雪的,先复制背景图层,文件名改为图层1。对图层1执行滤镜→像素化→点状化 单元格大小为6,执行图像→调整→阈值 阈值色阶为255,执行滤镜→模糊→动感模糊角度为-45,距离为十三像素,将图层1混合模式设置为屏幕,产生下雪效果。就是这样