1

I am trying to add the actionlisteners for an array of buttons by calling a method using for loop but it didn't work it showed me no outputs neither any errors just BUILD SUCCESSFUL with nothing appearing when I separated each element of the array it worked successfully here is the method when it was built successfully ( I created a class for frame and class for panel named it cal which contains the buttons array and made it public just to access it for now easily then made an object of the panel in the frame class )

public void actionsnums ()
   {
          cal.arr[0].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+1);
             else 
                 reader.setText(""+1);;
            }
        });
        cal.arr[1].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+2);
             else 
                 reader.setText(""+2);;
            }
        });cal.arr[2].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+3);
             else 
                 reader.setText(""+3);;
            }
        });cal.arr[4].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+4);
             else 
                 reader.setText(""+4);;
            }
        });cal.arr[5].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+5);
             else 
                 reader.setText(""+5);;
            }
        });cal.arr[6].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+6);
             else 
                 reader.setText(""+6);;
            }
        });cal.arr[8].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+7);
             else 
                 reader.setText(""+7);
            }
        });cal.arr[9].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+8);
             else 
                 reader.setText(""+8);;
            }
        });cal.arr[10].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+9);
             else 
                 reader.setText(""+9);}
        });
        cal.arr[13].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){
             if (reader.getText()!="0")
                 reader.setText(reader.getText()+0);
             else 
                 reader.setText(""+0);                
            }
        }); 
   }

here when it didn't work

public void actionsnums ()
   {
       for (int i=0;i<3;i++)
       {
           int y=i++;
            cal.arr[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+y);
             else 
                 reader.setText(""+y);;
            }
        });
       }
       for (int i=4;i<7;i++)
       {
           int y=i;
            cal.arr[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+y);
             else 
                 reader.setText(""+y);;
            }
        });}
         for (int i=8;i<11;i++)
       {
           int y=i--;
            cal.arr[i].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent evt){

             if (reader.getText()!="0")
                 reader.setText(reader.getText()+y);
             else 
                 reader.setText(""+y);;
            }
        });
       }
   }
Basma
  • 33
  • 5
  • `reader.getText()!="0"` is not how String comparison works in Java, you should be using `!"0".equals(reader.getText())` instead... – MadProgrammer Apr 16 '15 at 01:02
  • Consider providing a [runnable example](https://stackoverflow.com/help/mcve) which demonstrates your problem. This is not a code dump, but an example of what you are doing which highlights the problem you are having. This will result in less confusion and better responses – MadProgrammer Apr 16 '15 at 01:04
  • thanks for your help ,but I don't think that the problem is here since it worked for the other case when I initialized them separably without a loop – Basma Apr 16 '15 at 01:05
  • *"since it worked for the other case "* - Congratulations, you got "lucky", but it won't last. `==` compares memory location's not value equality... – MadProgrammer Apr 16 '15 at 01:06

0 Answers0