• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Need help with addActionListener

 
Steve Vittoria
Ranch Hand
Posts: 35
Eclipse IDE Java Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?

Thanks!
 
Michael Dunn
Ranch Hand
Posts: 4632
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 434
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.

Cheers,
Rachel
 
Steve Vittoria
Ranch Hand
Posts: 35
Eclipse IDE Java Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic