Java 移动jbutton的更好方法

Java 移动jbutton的更好方法,java,Java,我试着为我自制的食品订购终端和 找到了一种方法来实现它,但它需要大量的文字。 我想可能有更好的办法 我编码为最多服务100名客户,他们每个人都有自己的Jpanel,里面有食物(JButtons)。对于每一个可能的单一食品订单,我都使用一个while循环 这样,我需要在循环时写将近100000个 也许你们有个建议,不用这么多代码就可以做到这一点 这就是这10万人中的50人的样子: gemüse.addActionListener(new ActionListener() {

我试着为我自制的食品订购终端和 找到了一种方法来实现它,但它需要大量的文字。 我想可能有更好的办法

我编码为最多服务100名客户,他们每个人都有自己的
Jpanel
,里面有食物(
JButtons
)。对于每一个可能的单一食品订单,我都使用一个while循环

这样,我需要在循环时写将近100000个

也许你们有个建议,不用这么多代码就可以做到这一点

这就是这10万人中的50人的样子:

            gemüse.addActionListener(new ActionListener() {



                public void actionPerformed(ActionEvent e) {


                    Preis = Preis + gemüsepreis;
                    labelsumme.setText(String.valueOf(Preis));
                    while (kunde == 1) {

                        while (brgemü == 1) {gemüicon1.setVisible(false);Bestellpanel.add(gemüicon1);gemüicon1.setVisible(true);brgemü++;return; }
                        while (brgemü == 2) {gemüicon2.setVisible(false);Bestellpanel.add(gemüicon2);gemüicon2.setVisible(true);brgemü++;return; }
                        while (brgemü == 3) {gemüicon3.setVisible(false);Bestellpanel.add(gemüicon3);gemüicon3.setVisible(true);brgemü++;return; }
                        while (brgemü == 4) {gemüicon4.setVisible(false);Bestellpanel.add(gemüicon4);gemüicon4.setVisible(true);brgemü++;return; }
                        while (brgemü == 5) {gemüicon5.setVisible(false);Bestellpanel.add(gemüicon5);gemüicon5.setVisible(true);brgemü++;return; }
                        while (brgemü == 6) {gemüicon6.setVisible(false);Bestellpanel.add(gemüicon6);gemüicon6.setVisible(true);brgemü++;return; }
                        while (brgemü == 7) {gemüicon7.setVisible(false);Bestellpanel.add(gemüicon7);gemüicon7.setVisible(true);brgemü++;return; }
                        while (brgemü == 8) {gemüicon8.setVisible(false);Bestellpanel.add(gemüicon8);gemüicon8.setVisible(true);brgemü++;return; }
                        while (brgemü == 9) {gemüicon9.setVisible(false);Bestellpanel.add(gemüicon9);gemüicon9.setVisible(true);brgemü++;return; }
                        while (brgemü == 10) {gemüicon10.setVisible(false);Bestellpanel.add(gemüicon10);gemüicon10.setVisible(true);brgemü++;return; }
                        while (brgemü == 11) {gemüicon11.setVisible(false);Bestellpanel.add(gemüicon11);gemüicon11.setVisible(true);brgemü++;return; }
                        while (brgemü == 12) {gemüicon12.setVisible(false);Bestellpanel.add(gemüicon12);gemüicon12.setVisible(true);brgemü++;return; }
                        while (brgemü == 13) {gemüicon13.setVisible(false);Bestellpanel.add(gemüicon13);gemüicon13.setVisible(true);brgemü++;return; }
                        while (brgemü == 14) {gemüicon14.setVisible(false);Bestellpanel.add(gemüicon14);gemüicon14.setVisible(true);brgemü++;return; }
                        while (brgemü == 15) {gemüicon15.setVisible(false);Bestellpanel.add(gemüicon15);gemüicon15.setVisible(true);brgemü++;return; }
                        while (brgemü == 16) {gemüicon16.setVisible(false);Bestellpanel.add(gemüicon16);gemüicon16.setVisible(true);brgemü++;return; }
                        while (brgemü == 17) {gemüicon17.setVisible(false);Bestellpanel.add(gemüicon17);gemüicon17.setVisible(true);brgemü++;return; }
                        while (brgemü == 18) {gemüicon18.setVisible(false);Bestellpanel.add(gemüicon18);gemüicon18.setVisible(true);brgemü++;return; }
                        while (brgemü == 19) {gemüicon19.setVisible(false);Bestellpanel.add(gemüicon19);gemüicon19.setVisible(true);brgemü++;return; }
                        while (brgemü == 20) {gemüicon20.setVisible(false);Bestellpanel.add(gemüicon20);gemüicon20.setVisible(true);brgemü++;return; }
                        while (brgemü == 21) {gemüicon21.setVisible(false);Bestellpanel.add(gemüicon21);gemüicon21.setVisible(true);brgemü++;return; }
                        while (brgemü == 22) {gemüicon22.setVisible(false);Bestellpanel.add(gemüicon22);gemüicon22.setVisible(true);brgemü++;return; }
                        while (brgemü == 23) {gemüicon23.setVisible(false);Bestellpanel.add(gemüicon23);gemüicon23.setVisible(true);brgemü++;return; }
                        while (brgemü == 24) {gemüicon24.setVisible(false);Bestellpanel.add(gemüicon24);gemüicon24.setVisible(true);brgemü++;return; }
                        while (brgemü == 25) {gemüicon25.setVisible(false);Bestellpanel.add(gemüicon25);gemüicon25.setVisible(true);brgemü++;return; }
                        while (brgemü == 26) {gemüicon26.setVisible(false);Bestellpanel.add(gemüicon26);gemüicon26.setVisible(true);brgemü++;return; }
                        while (brgemü == 27) {gemüicon27.setVisible(false);Bestellpanel.add(gemüicon27);gemüicon27.setVisible(true);brgemü++;return; }
                        while (brgemü == 28) {gemüicon28.setVisible(false);Bestellpanel.add(gemüicon28);gemüicon28.setVisible(true);brgemü++;return; }
                        while (brgemü == 29) {gemüicon29.setVisible(false);Bestellpanel.add(gemüicon29);gemüicon29.setVisible(true);brgemü++;return; }
                        while (brgemü == 30) {gemüicon30.setVisible(false);Bestellpanel.add(gemüicon30);gemüicon30.setVisible(true);brgemü++;return; }
                        while (brgemü == 31) {gemüicon31.setVisible(false);Bestellpanel.add(gemüicon31);gemüicon31.setVisible(true);brgemü++;return; }
                        while (brgemü == 32) {gemüicon32.setVisible(false);Bestellpanel.add(gemüicon32);gemüicon32.setVisible(true);brgemü++;return; }
                        while (brgemü == 33) {gemüicon33.setVisible(false);Bestellpanel.add(gemüicon33);gemüicon33.setVisible(true);brgemü++;return; }
                        while (brgemü == 34) {gemüicon34.setVisible(false);Bestellpanel.add(gemüicon34);gemüicon34.setVisible(true);brgemü++;return; }
                        while (brgemü == 35) {gemüicon35.setVisible(false);Bestellpanel.add(gemüicon35);gemüicon35.setVisible(true);brgemü++;return; }
                        while (brgemü == 36) {gemüicon36.setVisible(false);Bestellpanel.add(gemüicon36);gemüicon36.setVisible(true);brgemü++;return; }
                        while (brgemü == 37) {gemüicon37.setVisible(false);Bestellpanel.add(gemüicon37);gemüicon37.setVisible(true);brgemü++;return; }
                        while (brgemü == 38) {gemüicon38.setVisible(false);Bestellpanel.add(gemüicon38);gemüicon38.setVisible(true);brgemü++;return; }
                        while (brgemü == 39) {gemüicon39.setVisible(false);Bestellpanel.add(gemüicon39);gemüicon39.setVisible(true);brgemü++;return; }
                        while (brgemü == 40) {gemüicon40.setVisible(false);Bestellpanel.add(gemüicon40);gemüicon40.setVisible(true);brgemü++;return; }
                        while (brgemü == 41) {gemüicon41.setVisible(false);Bestellpanel.add(gemüicon41);gemüicon41.setVisible(true);brgemü++;return; }
                        while (brgemü == 42) {gemüicon42.setVisible(false);Bestellpanel.add(gemüicon42);gemüicon42.setVisible(true);brgemü++;return; }
                        while (brgemü == 43) {gemüicon43.setVisible(false);Bestellpanel.add(gemüicon43);gemüicon43.setVisible(true);brgemü++;return; }
                        while (brgemü == 44) {gemüicon44.setVisible(false);Bestellpanel.add(gemüicon44);gemüicon44.setVisible(true);brgemü++;return; }
                        while (brgemü == 45) {gemüicon45.setVisible(false);Bestellpanel.add(gemüicon45);gemüicon45.setVisible(true);brgemü++;return; }
                        while (brgemü == 46) {gemüicon46.setVisible(false);Bestellpanel.add(gemüicon46);gemüicon46.setVisible(true);brgemü++;return; }
                        while (brgemü == 47) {gemüicon47.setVisible(false);Bestellpanel.add(gemüicon47);gemüicon47.setVisible(true);brgemü++;return; }
                        while (brgemü == 48) {gemüicon48.setVisible(false);Bestellpanel.add(gemüicon48);gemüicon48.setVisible(true);brgemü++;return; }
                        while (brgemü == 49) {gemüicon49.setVisible(false);Bestellpanel.add(gemüicon49);gemüicon49.setVisible(true);brgemü++;return; }
                        while (brgemü == 50) {gemüicon50.setVisible(false);Bestellpanel.add(gemüicon50);gemüicon50.setVisible(true);brgemü++;return; }
                                }
Kunde在德语中的意思是客户。 每一个fooditem我就有100个这样的代码块,
我们有大约18个fooditems。

我对Java UI类不太熟悉,所以我将使用
T
来标记
gemüiconXX
对象的类型。除此之外,这里至少有一个更优雅的方式来解决这个问题:

我会使用地图来保存图标:

Map<Integer, T> iconsMap = new HashMap<Integer, T>();
那么你的“丑陋”代码将变成:

public void actionPerformed(ActionEvent e) {
    Preis = Preis + gemüsepreis;
    labelsumme.setText(String.valueOf(Preis));
    while (kunde == 1) {     
        T gemüicon = iconsMap.get(brgemü++);
        gemüicon.setVisible(false);
        Bestellpanel.add(gemüicon);
        gemüicon.setVisible(true);
        return; 
    }
}

While是指某物应该重复多次,但不是固定数量。由于您在everywhile循环中返回,所以您要使用的是if语句或switch语句。同样,在您的情况下,您可能希望将所有
gemü图标
存储在一个数组或列表中,并使用
brgemü
作为索引访问它。这样,您只需要几行代码

if(kunde == 1)
{
   gemüsearray[brgemü].setVisible(false);
   Bestellpanel.add(gemüsearray[brgemü]);
   gemüsearray[brgemü].setVisible(true);
   brgemü++;
   return;
}

展示你的班级结构。我不太清楚你的意思。我得到了一个包含32511行代码的主类。您正在用面向对象语言Java编程。如果你有一个包含那么多代码行的类,那么你显然跳过了设计过程。我对编程是新手。我将进一步介绍Java的基础知识。谢谢你指出这一点。如果(没有双关语意图)我设法实现了你们的帮助,削减了我的代码,我的大部分项目都完成了。但我意识到我在这件事上走得太快了。在这之后,我将后退一步,尝试学习java基础知识。谢谢你的提示。我会更深入地了解这一点。谢谢:)
if(kunde == 1)
{
   gemüsearray[brgemü].setVisible(false);
   Bestellpanel.add(gemüsearray[brgemü]);
   gemüsearray[brgemü].setVisible(true);
   brgemü++;
   return;
}