java - Gui 中的数组递增

标签 java arrays user-interface

嗨,我的程序遇到了麻烦,因为我需要设置一个数组,以便轻松地增加它,因为它是销售,所以我像这样声明我的数组,我还没有完成我的程序,这是我的程序到目前为止。

    import java.awt.*;
import java.awt.event.*;
import javax.swing.*;




public class We extends JFrame
{

    public static JPanel panel2 = new JPanel();
    public static String totallist,addprod;
    public static int grandtotal,ve,xxx,z,x,adding,pay,totalp,totalc,payment;
    public static JTextField in = new JTextField(z);
    public static JTextField ki = new JTextField(15);    
    public static double disc,totalbayad,sukli;
    public static int benta[] = new int [11];
    public static String prod[] = new String[11];

    public static void main(String[] args)
    {

        We frameTabel = new We();


        prod[1] = "Palmolive";
        prod[2] = "Egg";
        prod[3] = "Milo";
        prod[4] = "Noodles";
        prod[5] = "PancitCanton";
        prod[6] = "CornBeef";
        prod[7] = "LigoSardines";
        prod[8] = "CokeSakto";
        prod[9] = "RcBig";
        prod[10] = "GibsonLespaulGuitar";

        benta[1] = 6;
        benta[2] = 5;
        benta[3] = 6;
        benta[4] = 9;
        benta[5] = 10;
        benta[6] = 25;
        benta[7] = 16;
        benta[8] = 6;
        benta[9] = 16;
        benta[10] = 14000;


    }


        JFrame frame = new JFrame("Customer");
        JFrame prodcho = new JFrame("Unofficial receipt");
        JFrame want = new JFrame("Buy AGain");
        JFrame ftinda = new JFrame("Item && Prices");
        JButton blogin = new JButton("Login");
        JPanel panel = new JPanel();
        JTextField txuser = new JTextField(15);
        JPasswordField pass = new JPasswordField(15);
        JLabel lab = new JLabel("Username :");
        JLabel pas = new JLabel("Password :");
        JLabel cos;
        //JPanel panel = new JPanel();
        JButton y1;
        JButton y2;

    We()
        {
            super("Enter Your Account !");
            setSize(300,200);
            setLocation(500,280);
            panel.setLayout (null);


            txuser.setBounds(90,30,150,20);
            pass.setBounds(90,65,150,20);
            blogin.setBounds(110,100,80,20);
            lab.setBounds(15,28,150,20);
            pas.setBounds(15,63,150,20);

            panel.add(lab);
            panel.add(pas);
            panel.add(blogin);
            panel.add(txuser);
            panel.add(pass);

            getContentPane().add(panel);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
            actionlogin();

        }

            public void actionlogin()
        {
            blogin.addActionListener(new ActionListener()
            {
        public void actionPerformed(ActionEvent ae)
             {
                String puname = txuser.getText();
                String ppaswd = pass.getText();
                if(puname.equals("vincent") && ppaswd.equals("puge"))
            {

                setVisible(false);
                JPanel panel1 = new JPanel();

                frame.setVisible(true);
                frame.setSize(300,200);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new GridLayout());

                    cos = new JLabel("Do you have a Customer ?");
                    y1 = new JButton("Yes");
                    y2 = new JButton("No");


                        panel1.setLayout(null);
                        cos.setBounds(70,30,150,20);
                        y1.setBounds(80,65,150,20);
                        y2.setBounds(140,65,150,20);
                        y1.setSize(55,30);
                        y2.setSize(55,30);
                        panel1.add(y1);
                        panel1.add(y2);
                        panel1.add(cos);
                        frame.add(panel1);




                   y1.addActionListener(new ActionListener()
                   {
                       public void actionPerformed(ActionEvent ae)
                       {
                           Object source = ae.getSource();

                           if(source == y1)
                           {
                               frame.setVisible(false);
                               //--------------------------------------
                               int boundsStart=10;
                               panel.l2.add(new JLabel("-Product-").setBounds(20,boundsStart,150,20));
                               boundsStart+=20;

                               for (int i=1; i<11; i++)
                               {
                                    panel2.add(new JLabel(i+"."+prod[i]).setBounds(20,boundsStart,150,20));
                                    boundsStart+=20;
                               }

                               boundsStart = 30; //reset bounds counter

                               for (int i=1; i<11; i++)
                               {
                                    panel2.add(new JLabel(""+benta[i]).setBounds(20,boundsStart,150,20));
                                    boundsStart+=20;
                               }
                               //You could then change the other JLabels that came after this point in the same way I just did
                               //price,ent,law, and qx

                               //--------------------------------------

                               JLabel vince = new JLabel("-Product-");
                               JLabel l1 = new JLabel("1."+prod[1]);
                               JLabel l2 = new JLabel("2."+prod[2]);
                               JLabel l3 = new JLabel("3."+prod[3]);
                               JLabel l4 = new JLabel("4."+prod[4]);
                               JLabel l5 = new JLabel("5."+prod[5]);
                               JLabel l6 = new JLabel("6."+prod[6]);
                               JLabel l7 = new JLabel("7."+prod[7]);
                               JLabel l8 = new JLabel("8."+prod[8]);
                               JLabel l9 = new JLabel("9."+prod[9]);
                               JLabel l10 = new JLabel("10."+prod[10]);
                               JLabel p1 = new JLabel(""+benta[1]);
                               JLabel p2 = new JLabel(""+benta[2]);
                               JLabel p3 = new JLabel(""+benta[3]);
                               JLabel p4 = new JLabel(""+benta[4]);
                               JLabel p5 = new JLabel(""+benta[5]);
                               JLabel p6 = new JLabel(""+benta[6]);
                               JLabel p7 = new JLabel(""+benta[7]);
                               JLabel p8 = new JLabel(""+benta[8]);
                               JLabel p9 = new JLabel(""+benta[9]);
                               JLabel p10 = new JLabel(""+benta[10]);
                               JLabel price = new JLabel("-Price-");

                               JButton ent = new JButton("Enter");
                               JLabel law = new JLabel("Enter No. of Product");
                               JLabel qx = new JLabel("Enter Quantity");




                               ftinda.setVisible(true);
                               ftinda.setSize(350,350);
                               ftinda.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                               ftinda.setLayout(new GridLayout());

                               panel2.setLayout(null);
                               vince.setBounds(20,10,150,20);
                               l1.setBounds(20,30,150,20);
                               l2.setBounds(20,50,150,20);
                               l3.setBounds(20,70,150,20);
                               l4.setBounds(20,90,150,20);
                               l5.setBounds(20,110,150,20);
                               l6.setBounds(20,130,150,20);
                               l7.setBounds(20,150,150,20);
                               l8.setBounds(20,170,150,20);
                               l9.setBounds(20,190,150,20);
                               l10.setBounds(20,210,150,20);
                               p1.setBounds(230,30,150,20);
                               p2.setBounds(230,50,150,20);
                               p3.setBounds(230,70,150,20);
                               p4.setBounds(230,90,150,20);
                               p5.setBounds(230,110,150,20);
                               p6.setBounds(230,130,150,20);
                               p7.setBounds(230,150,150,20);
                               p8.setBounds(230,170,150,20);
                               p9.setBounds(230,190,150,20);
                               p10.setBounds(230,210,150,20);
                               price.setBounds(225,10,150,20);
                               in.setBounds(150,250,150,20);
                               law.setBounds(20,253,150,20);
                               qx.setBounds(20,280,150,20);
                               ki.setBounds(150,280,150,20);
                               ent.setBounds(220,250,150,20);
                               in.setSize(42,20);
                               ki.setSize(42,20);
                               ent.setSize(65,50);




                               panel2.add(vince);
                               panel2.add(l1);
                               panel2.add(l2);
                               panel2.add(l3);
                               panel2.add(l4);
                               panel2.add(l5);
                               panel2.add(l6);
                               panel2.add(l7);
                               panel2.add(l8);
                               panel2.add(l9);
                               panel2.add(l10);
                               panel2.add(p1);
                               panel2.add(p2);
                               panel2.add(p3);
                               panel2.add(p4);
                               panel2.add(p5);
                               panel2.add(p6);
                               panel2.add(p7);
                               panel2.add(p8);
                               panel2.add(p9);
                               panel2.add(p10);
                               panel2.add(price);
                               panel2.add(in);
                               panel2.add(law);
                               panel2.add(ent);
                               panel2.add(qx);
                               panel2.add(ki);                              
                               ftinda.add(panel2);

                               ent.addActionListener(new ActionListener()
                               {
                                   public void actionPerformed(ActionEvent ae)
                                   {


                                      ftinda.setVisible(false);
                                      JPanel panel3 = new JPanel();
                                      JLabel cos1 = new JLabel("Do you want to buy more ?");
                                      JButton yy = new JButton("Yes");
                                      JButton  nn = new JButton("No");


                                      panel3.setLayout(null);
                                      cos1.setBounds(70,30,150,20);
                                      yy.setBounds(80,65,150,20);
                                      nn.setBounds(140,65,150,20);
                                      yy.setSize(55,30);
                                      nn.setSize(55,30);
                                      panel3.add(cos1);
                                      panel3.add(yy);
                                      panel3.add(nn);

                                      want.add(panel3);

                                      want.setVisible(true);
                                      want.setSize(300,200);
                                      want.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                      want.setLayout(new GridLayout());


                                      addprod = prod[];
                                      adding = benta[];
                                      totalp = 
                                      totalc = totalp;
                                      totallist = totallist + addprod +"" +x+ "pcs = "+totalc+"pesos";


                                      nn.addActionListener(new ActionListener()
                                      {
                                          public void actionPerformed(ActionEvent ea)
                                          {
                                              Object source1 = ea.getSource();
                                              {
                                                  if(source1 == nn)
                                                  {

                                                      JPanel panel4 = new JPanel();




                                                      panel4.setLayout(null);
                                                      prodcho.setVisible(true);
                                                      prodcho.setSize(300,200);
                                                      prodcho.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                                      prodcho.setLayout(new GridLayout());

                                                      prodcho.add(panel4);
                                                  }
                                              }
                                          }
                                      });

                                   }
                               });

                           }
                       }
                   });


            }
            else
                {

                    JOptionPane.showMessageDialog(null,"Wrong Password / Username");
                    txuser.setText("");
                    pass.setText("");
                    txuser.requestFocus();
                }

            }
        });
    }
}

最佳答案

正如PeterMmm所说,arrayLists应该能够解决你的困境。 ArrayLists 允许您非常轻松地创建任何类型的数组,并且具有非常好的界面,例如

mylist.add(element)

Maroun Maroun 还提出了一个有效的观点,即您可以使用循环更好地实现这一点,这样您就可以避免代码中的大量重复,但如果您对此感到满意,则没有必要这样做。

希望以下使用ArrayList的示例可以帮助您: http://javarevisited.blogspot.de/2011/05/example-of-arraylist-in-java-tutorial.html

如果您想了解有关 arraylist 的更多信息,请参阅以下文档: http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

我的最后一个提示是,在查看您的代码时,向您的按钮添加一个 actionListener,因为目前它什么也不做;)

ent.addActionListener(new ActionListener()
{
    @Override
    public void actionPerformed( ActionEvent e )
    {
        //..do stuff here or call a function to do stuff :)
    }
});

关于java - Gui 中的数组递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704742/

相关文章:

java - JScrollpane 滚动条调整大小问题

java - 如何检查两个字符串实际上相等并且具有相同的字符?即使有空格或小写

java - GUI结构组织

c++ - gwen + opengl 什么都看不到

java - 处理文件中的嵌套 for 循环 - java 8

Java 堆大小因 Infinispan 缓存而变得太大

c# - 增加 int 数组的更优雅的方法?

iphone - float* array 到 NSArray, iOS

arrays - 用分隔符将连接的 slice 拆分为最大N个长度的 block

Java GUI - 从数组中获取随机值