Search code examples
javaswinguser-interfacejcombobox

setSelectedItem in JComboBox do nothing


My code is simple..........I want when I press button to set text to all labels in panel to " " (nothing) /which is working/ and all combobox to value 1. //which is not workig. It set only first combobox of seven in ArrayList amout to value 1, others don't change their values!

I didn't made modelcombobox!!Maybe that is the reason! I don't know, I am beginner

my code

    public class Bill extends JPanel {
 private JComboBox amount1=new JComboBox(new String[]{"-1","0","1", "2", "3", "4", "5",  "6", "7","8","9"});
    private JComboBox amount2=new JComboBox(new String[]{"-1","0","1", "2", "3", "4", "5", "6", "7","8","9"});
   .........some other labels, combobox......

    static ArrayList<JLabel> product=new ArrayList<JLabel>();
    static ArrayList<JComboBox> amout=new ArrayList<JComboBox>();
    static ArrayList<JLabel> pprice=new ArrayList<JLabel>();
    static ArrayList<JLabel> prprice=new ArrayList<JLabel>();

    .......ArrayList to hold labels and combobox.....

     private JButton jbtView = new JButton("STAMPAJ RACUN"); 
       //conctructor

     public Bill(){

              product.add(product1);
      product.add(product2);
      product.add(product3);
      product.add(product4);
      product.add(product5);
      product.add(product6);
      product.add(product7);

      pprice.add(jlb1);
      pprice.add(jlb3);
      pprice.add(jlb5);
      pprice.add(jlb7);
      pprice.add(jlb9);
      pprice.add(jlb11);
      pprice.add(jlb13);

      amout.add(amount1);
      amout.add(amount2);
      amout.add(amount3);
      amout.add(amount4);
      amout.add(amount5);
      amout.add(amount6);
      amout.add(amount7);

      prprice.add(jlb2);
      prprice.add(jlb4);
      prprice.add(jlb6);
      prprice.add(jlb8);

    ......add all labels, bomboboxes to ArrayList , make panels......//all works
      jbtView.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {


                 for (int j=0;j<Application.manu.size();j++){                    
                     if ((product.get(0).getText()).equals(Application.manu.get(j).getName()))//this is working
                        Application.manu.get(j).setCol(kol+Application.manu.get(j).getCol());//this is working

                       }

                 for (int j=0;j<prprice.size();j++){
                     prprice.get(j).setText("0.0");
                 }//this is working-set labels to ""

                  for (int i=0;i<product.size();i++){

                      product.get(i).setText("");//this is working-set labels to ""
                  }
                  for (int j=0;j<prprice.size();j++){
                         pprice.get(j).setText("");
                     }//this is working-set labels to ""

                  for (int j=0;j<amout.size();j++){


                          amout.get(j).setSelectedItem("1");//only first combobox set to value "1", others doesn't change

                        } 
                      UKUPNO.setText("0.0"); // doesn't set to "0.0", doesn't change     

Does anyone know the reason?


Solution

  • Although you don't show us the constructor, th problem is pretty clear. You forgot to add all amount combo boxes to the amout array list.

    If that is not the problem, check if you get any exception when you press the button.