Modify code to add actincommands

Hello everyone out I'm back asking for some more help Could this code be modified to be able to add actionCommands in like a for statement, so I don't have to write alot of repetive code. I have an example that was given to me by CEHJ

Example:

for(int i = 0; i < checkboxes.length; i++) {
     checkboxes[i].setActionCommand("kp" + (i + 1) + ".wav");
     levels.add(checkboxes[i]);//go through checkboxs and add them to levels
}    



import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class DefensiveMoves extends JPanel implements ActionListener
{
     JCheckBox check;
     JLabel label;
     JPanel gridPanel;
     ArrayList myArrayList;

     public DefensiveMoves()
     {
          myArrayList = new ArrayList();
          label = new JLabel();
          //Call it like this . . .
          gridPanel = new JPanel();
          gridPanel.setLayout(new GridLayout(0, 3));
          // Setting MY layout...
          setLayout(new BorderLayout());
          add(label, BorderLayout.NORTH);
          add(gridPanel, BorderLayout.CENTER);
          label.setText("         DefensiveMoves");
          label.setForeground(Color.red);
          setBackground(Color.white);
          looprow : for (int row = 0; row < 20; row++)
          {
               for (int col = 0; col < 3; col++)
               {
                    int n = (20 * col + row + 1);
                    if (n > 50)
                    {
                         break looprow;
                    }
                    JButton check = new JColoredButton("" + n, Color.green, Color.black);
                    check.addActionListener(this);
                    //myArrayList.add(check);
                    gridPanel.add(check);
               }
          }
     }

     public static void main(String[] args)
     {
          JFrame frame = new JFrame();
          frame.getContentPane().add(new DefensiveMoves());
          frame.setSize(400, 400);
          frame.setVisible(true);

          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }

     public void actionPerformed(ActionEvent e)
     {
          JColoredButton button = (JColoredButton)e.getSource();
         
          if (myArrayList.contains(button))
          {
               myArrayList.remove(button);
               button.setDefaultColor();
          }
          else
          {
               myArrayList.add(button);
               button.setPressedColor();
          }
         
          System.out.println(myArrayList);
     }
}

class JColoredButton extends JButton
{
     private Color foreground;
     private Color deafultForeground;
     private Color background;
     private Color defaultBackground;

     public JColoredButton(String label, Color background, Color foreground)
     {
          super(label);
          this.background = background;
          this.foreground = foreground;
          defaultBackground = getBackground();
          deafultForeground = getForeground();
     }
     
     public void setPressedColor()
     {
          setBackground(background);
          setForeground(foreground);
     }
     
     public void setDefaultColor()
     {
          setBackground(defaultBackground);
          setForeground(deafultForeground);
     }
}
Drop_of_RainAsked:
Who is Participating?
 
objectsConnect With a Mentor Commented:
        int i = 0;
         looprow : for (int row = 0; row < 20; row++)
          {
               for (int col = 0; col < 3; col++)
               {
                    int n = (20 * col + row + 1);
                    if (n > 50)
                    {
                         break looprow;
                    }
                    JButton check = new JColoredButton("" + n, Color.green, Color.black);
                    check.setActionCommand("kp" + (i + 1) + ".wav"); // <- set your action command here to what u want it to be
                    check.addActionListener(this);
                    //myArrayList.add(check);
                    gridPanel.add(check);
                    i++;
               }
          }
     }
0
 
objectsCommented:
         looprow : for (int row = 0; row < 20; row++)
          {
               for (int col = 0; col < 3; col++)
               {
                    int n = (20 * col + row + 1);
                    if (n > 50)
                    {
                         break looprow;
                    }
                    JButton check = new JColoredButton("" + n, Color.green, Color.black);
                    check.setActionCommand(xxx); // <- set your action command here to what u want it to be
                    check.addActionListener(this);
                    //myArrayList.add(check);
                    gridPanel.add(check);
               }
          }
     }
0
 
objectsCommented:
Or you could even set it in your JColoredButton constructor.
What string exactly did u want to set it to?
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
Drop_of_RainAuthor Commented:
("kp" + (i + 1) + ".wav");

Like what was in the for:

checkboxes[i].setActionCommand("kp" + (i + 1) + ".wav");
0
 
JavatmCommented:
> checkboxes[i].setActionCommand("kp" + (i + 1) + ".wav");

You can also use it in your buttons :

for(int i = 0; i < check.length; i++) {
check.setActionCommand("kp" + (i + 1) + ".wav");
}


0
 
JavatmCommented:
Or by just declaring it above on your for loop like what objects said.
0
 
Drop_of_RainAuthor Commented:
Its working, thanks everyone you make this look so simple. I used objects code
0
 
JavatmCommented:
Where always happy as long as we can resolve your problem :)
0
 
objectsCommented:
:)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.