File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Swing / AWT / SWT and the fly likes Need help with addActionListener Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Need help with addActionListener" Watch "Need help with addActionListener" New topic

Need help with addActionListener

Steve Vittoria
Ranch Hand

Joined: Jan 12, 2005
Posts: 35

Hi everyone,

I have an array of JButtons, and I don't know how to determine which one was clicked. I know how to do it if each button had a different text (i.e. Ok, Cancel, etc.), but in my case they all have the same exact text (I'm writing a poker game).

Here is a sample of my code...

What can I do in the actionPerformed method in order to determine which button was pressed?

Michael Dunn
Ranch Hand

Joined: Jun 09, 2003
Posts: 4632
here are some of the ways you could do this

1. in actionPerformed() iterate the button array checking if it is the source
(the button array will need the necessary scope)

2. add a separate actionListener to each button, each with it's own actionPerformed(),
then have a separate method that takes an identifier as a parameter

3. create your own JButton, adding an ID
then, in actionPerformed you cast the source as MyButton, and get the ID
Jay Aranguren

Joined: May 08, 2004
Posts: 3
I think you can also just set the action command for each of the buttons. But I like the solutions Michael posted above better

Rachel Swailes
Ranch Hand

Joined: May 18, 2004
Posts: 434
Instead of option three above, you can use the myButton.setName("my button's name") to give each button an identifier. Then you use .getName() to retrieve the name when you need it.

Steve Vittoria
Ranch Hand

Joined: Jan 12, 2005
Posts: 35

Awesome! Thanks Michael!

I tried both option 1 and 2. While option 1 results in less lines of code, I really like how clear and clean option 2 is.

Again thanks!
I agree. Here's the link:
subject: Need help with addActionListener
jQuery in Action, 3rd edition