I’ve got an array that creates buttons from A-Z, but I want to use it in a
Method where it returns the button pressed.
this is my original code for the buttons:
String b[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
for(i = 0; i < buttons.length; i++)
{
buttons[i] = new JButton(b[i]);
buttons[i].setSize(80, 80);
buttons[i].setActionCommand(b[i]);
buttons[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String choice = e.getActionCommand();
JOptionPane.showMessageDialog(null, "You have clicked: "+choice);
}
});
panel.add(buttons[i]);
}
I wasn’t sure exactly what you question was, so I have a few answers:
If you want to pull the button creation into a method – see the
getButtonmethod in the exampleIf you want to access the actual button when it’s clicked, you can do that by using the
ActionEvent.getSource()method (not shown) or by marking the button as final during declaration (shown in example). From there you can do anything you want with the button.If you question is “How can I create a method which takes in a array of letters and returns to me the last clicked button”, you should modify you question to explicitly say that. I didn’t answer that here because unless you have a very special situation, it’s probably not a good approach to the problem you’re working on. You could explain why you need to do that, and we can suggest a better alternative.
Example: