我如何使用while循环中的1个对象

时间:2013-12-04 10:47:12

标签: java while-loop switch-statement paintcomponent

我想知道是否可以使用循环创建的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;
    }

提前致谢

1 个答案:

答案 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)