package plane;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Panel;public class Star {public static void main (String[] args){Frame w = new Frame(); //创建一个面板w.setVisible(true); //显示面板,w.show();w.setSize(800,600); //设置面板大小w.setBackground(Color.BLACK); //设置背景颜色为黑色MyJPanel p = new MyJPanel(); //创建了一个画布w.add(p);Thread t = new Thread(p); //创建一个线程t.start(); //启动线程}}class MyJPanel extends Panel implements Runnable{int[] x = new int[100];int[] y = new int[100];public MyJPanel(){for (int i = 0; i < 100; i++) {x[i] = (int)(Math.random()*800);y[i] = (int)(Math.random()*600);}}public void paint(Graphics g){g.setColor(Color.YELLOW);g.fillOval(600,100,60,60);g.setColor(Color.BLACK);g.fillOval(580,100,60,60);g.setColor(Color.WHITE);for (int i = 0; i < 100; i++) {g.drawString("*",x[i],y[i]);}/*for (int j = 0; j < 300; j--) {for(int l=15;l>0;l--)for(int m=100000;m>0;m--)for(int n=81;n>0;n--);g.fillRect(0,600,800,10*j);}*/}public void run(){while(true){for (int i = 0; i < 100; i++) {if(y[i]+1<=600){y[i]++;}else{y[i]=0;}}repaint();try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}控制矩形的是注销的for循环代码
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
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;
如果不是就打印输出一些信息
希望能解决您的问题。
桃花长相依
TA贡献1860条经验 获得超8个赞
你这里会有一个问题,就是你的x,y没有任何保护。当UI开始画东西的时候,需要用到x,y的数值。而这个时候,你的线程也会修改x,y的数值。只靠sleep来暂停工作线程不能保证你的数值在UI更新之后才更新的。
添加回答
举报
0/150
提交
取消
