我想知道是否可以使用循环创建的1个项目。 对于学校的校园,我必须画一棵苹果树。用户必须能够选择抽出多少苹果。 (使用paintcomponent绘制苹果) 之后,用户可以点击一个按钮(掉落),1个苹果必须落在地上。
这是否可以通过while循环(选择随机苹果并移动它?) 目前我使用一个开关盒(用户可以选择最多5个苹果)并且下降'过程'使用布尔值
if(vallen == false){
switch (aantal){
case 1:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
break;
case 2:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 310, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 300, 5, 10);
break;
case 3:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 310, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 300, 5, 10);
g.setColor(kleur);
g.fillOval(150, 290, 40, 40);
g.setColor(Color.black);
g.fillRect(170, 280, 5, 10);
break;
case 4:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 310, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 300, 5, 10);
g.setColor(kleur);
g.fillOval(150, 290, 40, 40);
g.setColor(Color.black);
g.fillRect(170, 280, 5, 10);
g.setColor(kleur);
g.fillOval(210, 320, 40, 40);
g.setColor(Color.black);
g.fillRect(230, 310, 5, 10);
break;
case 5:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 310, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 300, 5, 10);
g.setColor(kleur);
g.fillOval(150, 290, 40, 40);
g.setColor(Color.black);
g.fillRect(170, 280, 5, 10);
g.setColor(kleur);
g.fillOval(210, 320, 40, 40);
g.setColor(Color.black);
g.fillRect(230, 310, 5, 10);
g.setColor(kleur);
g.fillOval(270, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(290, 290, 5, 10);
break;
default:
break;
}
}else{
switch (aantal){
case 0:
break;
case 1:
g.setColor(kleur);
g.fillOval(30, 650, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 640, 5, 10);
break;
case 2:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 650, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 640, 5, 10);
break;
case 3:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 650, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 640, 5, 10);
g.setColor(kleur);
g.fillOval(150, 290, 40, 40);
g.setColor(Color.black);
g.fillRect(170, 280, 5, 10);
break;
case 4:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 310, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 300, 5, 10);
g.setColor(kleur);
g.fillOval(150, 650, 40, 40);
g.setColor(Color.black);
g.fillRect(170, 640, 5, 10);
g.setColor(kleur);
g.fillOval(210, 320, 40, 40);
g.setColor(Color.black);
g.fillRect(230, 310, 5, 10);
break;
case 5:
g.setColor(kleur);
g.fillOval(30, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(50, 290, 5, 10);
g.setColor(kleur);
g.fillOval(90, 310, 40, 40);
g.setColor(Color.black);
g.fillRect(110, 300, 5, 10);
g.setColor(kleur);
g.fillOval(150, 290, 40, 40);
g.setColor(Color.black);
g.fillRect(170, 280, 5, 10);
g.setColor(kleur);
g.fillOval(210, 650, 40, 40);
g.setColor(Color.black);
g.fillRect(230, 640, 5, 10);
g.setColor(kleur);
g.fillOval(270, 300, 40, 40);
g.setColor(Color.black);
g.fillRect(290, 290, 5, 10);
break;
default:
showMessageDialog(null, "Geef een getal tussen 1 en 5 in!");
repaint();
break;
}
提前致谢
答案 0 :(得分:1)
循环用于重复的声明。如果你看到你的代码很多都是重复的,那么你可以把它转换成这样的东西:
if(aantal>5 || aantal<0){
showMessageDialog(null, "Geef een getal tussen 1 en 5 in!");
repaint();
}
int counter = (vallen) ? 0:1;
int x1=30,y1=300;
int x2=50,y2=290;
int randomVal=new Random().nextInt(aantal);
while(counter<=aantal){
if(counter!=randomVal){
g.setColor(kleur);
g.fillOval(x1, y1, 40, 40);
g.setColor(Color.black);
g.fillRect(x2, y2, 5, 10);
x1=x1+60;
x2+=60;
y1+=10;
y2+=10;
}else{
//write code for fallen apple
}
}
此外,您无需检查if(vallen==false)
您可以直接使用if(!vallen)