Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #2038

Listeners Still Respond A

From "Hal Vaughan" <hal.vaughan@THRWHITE.remove-dii-this>
Subject Listeners Still Respond A
Message-ID <U_Kdnd3c8vWkLwrbnZ2dnUVZ_gSdnZ2d@comcast.com> (permalink)
Newsgroups comp.lang.java.gui
Date 2011-04-27 15:36 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
I have the following code (with line numbers for convenience):

//jList is a JList
1       jList.setFocusable(false);
2       jList.removeListSelectionListener(this);
3       jList.setListData(new String[0]);       //Clear in case new data is empty
//Other code for setting data
11      jList.setSelectedIndex(refIndex);
12      jList.setFocusable(true);
13      jList.addListSelectionListener(this);
14      componentIndex = jList.getSelectedIndex();

I've removed the class itself as the ListSelectionListener at the start (at
line 2), then add it later (at line 13).  While testing, I found my data
was being updated more frequently than appropriate and when it was updated,
it would loop through multiple times.  I tracked it back, by throwing an
error and printing a stack trace, to both lines 3 and 11.  Both of these
lines, at different times, are triggering the ListSelectionListener.

Both of the offending lines are after I've removed the Listener and before I
reattach it.  Why are they triggering the Listener when it's not attached?

Hal

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | Next | Find similar | Unroll thread


Thread

Listeners Still Respond A "Hal Vaughan" <hal.vaughan@THRWHITE.remove-dii-this> - 2011-04-27 15:36 +0000

csiph-web