*在上次的课基础上增加了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混合模式设置为屏幕,产生下雪效果。就是这样