Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!news.glorb.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!86597e80!not-for-mail From: "Hal Vaughan" Subject: Listeners Still Respond A Message-ID: X-Comment-To: comp.lang.java.gui Newsgroups: comp.lang.java.gui Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.15a-Win32 NewsLink 1.92] Lines: 29 Date: Wed, 27 Apr 2011 15:36:49 GMT NNTP-Posting-Host: 96.60.20.240 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1303918609 96.60.20.240 (Wed, 27 Apr 2011 10:36:49 CDT) NNTP-Posting-Date: Wed, 27 Apr 2011 10:36:49 CDT Organization: TDS.net Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.gui:2038 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