We're a community of 1077K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,076,379 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

How to stop a JList from firing events when contents is updated?

Hi all, I'm currently trying to solve a problem with a JList. I've got an actionPerformed event applied to the JList (also tried the item updated event but it has the same effect), and whenever this event is fired, (i.e. the user makes a selection), something happens. Now, the problem is that when the list is being populated, it seems to fire the event too - thus creating problems for me.

Is there a way to stop the JList from firing the actionPerformed or itemStateChanged event when the contents is updated?

Thanks

P.S. Question has also been asked here: http://www.java-forums.org/awt-swing/41914-how-stop-jlist-firing-events-when-contents-updated.html#post195009

3
Contributors
7
Replies
2 Hours
Discussion Span
2 Years Ago
Last Updated
8
Views
Question
Answered
SeanC
Light Poster
47 posts since Jul 2010
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

Either populate the list before you add the listener or set a boolean flag initialized and check if (initialized) {... in your listener.

Edit: You may check to see if ListSelectionListener works better for your needs also. I wouldn't think that one would fire any event as the model is filled.

Ezzaral
null
Moderator
16,111 posts since May 2007
Reputation Points: 3,292
Solved Threads: 873
Skill Endorsements: 28

Thanks for your reply! Could you kindly reply on the initialize part, haven't understood completely?

SeanC
Light Poster
47 posts since Jul 2010
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

You can set a flag while you are altering the contents of the control, such as initialized=false; and then set it to true when you are finished. Your listener can simply ignore events while you are updating the contents by checking that flag.

Ezzaral
null
Moderator
16,111 posts since May 2007
Reputation Points: 3,292
Solved Threads: 873
Skill Endorsements: 28

Oh I see what you mean, thanks :) I'll try it out!

SeanC
Light Poster
47 posts since Jul 2010
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

but as Darryl said (Java Forum) remove and add just if needed, if you'll able to set boolean flag (Ezzeral sugestion), then you'll be able same way remove&add whole Listener, that's good concept and the safiest

mKorbel
Nearly a Posting Virtuoso
1,215 posts since Feb 2011
Reputation Points: 482
Solved Threads: 239
Skill Endorsements: 12

I see - thanks for your input. I'll try both techniques and see which one provides the best results. Thanks!

SeanC
Light Poster
47 posts since Jul 2010
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

Are you actually using the AWT List component? JList doesn't provide methods to add ActionListener or ItemListener.

JList just uses the ListSelectionListener which behaves a bit differently.

Ezzaral
null
Moderator
16,111 posts since May 2007
Reputation Points: 3,292
Solved Threads: 873
Skill Endorsements: 28
Question Answered as of 2 Years Ago by Ezzaral and mKorbel

This question has already been solved: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page rendered in 0.0788 seconds using 2.8MB