Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news.ripco.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail From: "markspace" Subject: Re: Can you get this SwingWorker code to work more than once Message-ID: <5023FE41.56508.calajapr@time.synchro.net> X-Comment-To: clusardi2k Newsgroups: comp.lang.java.programmer In-Reply-To: <5023FE40.56506.calajapr@time.synchro.net> References: <5023FE40.56506.calajapr@time.synchro.net> X-FTN-AREA: COMP.LANG.JAVA.PROGRAMMER X-FTN-MSGID: 1:261/38 c05ac9c3 X-FTN-REPLY: 1:261/38 e504e794 Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98] Lines: 56 Date: Thu, 09 Aug 2012 18:44:44 GMT NNTP-Posting-Host: 69.21.70.65 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1344537884 69.21.70.65 (Thu, 09 Aug 2012 13:44:44 CDT) NNTP-Posting-Date: Thu, 09 Aug 2012 13:44:44 CDT Organization: tds.net Xref: csiph.com comp.lang.java.programmer:17559 To: clusardi2k From: markspace <-@.> On 8/9/2012 8:55 AM, clusardi2k@aol.com wrote: > On Thursday, August 9, 2012 11:48:04 AM UTC-4, Eric Sosman wrote: >> On 8/9/2012 11:24 AM, ... wrote: > Here is a project that works >> perfectly only the first time. [...] Quoth the JavaDoc: "SwingWorker is only >> designed to be executed once. Executing a SwingWorker more than once will not >> result in invoking the doInBackground method twice." If you want to do a >> background task N times, you'll need N instances of SwingWorker, one per task >> execution. -- Eric Sosman esosman@ieee-dot-org.invalid > > So, I want a project to do the following: > > (1) Display a button when the project is run, > (2) When the user presses the button, a label is displayed. > (3) The project next executes three long "for" loops such as in a previous post of this thread. > (4) When the three "for" loops are finished, the label disappears. > > Question: How can I repeatedly do steps (2) through (4) above when a project is started? In this case just move the "new Non_GUI_Stuff()" inside the actionPreformed() method. Then "new" will get executed each time the user presses the button, you'll get a new object that you can execute with no problems. jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //The "Hello World" label that appears //when button is pressed Non_GUI_Stuff task = new Non_GUI_Stuff(); jLabel1.setVisible (true); task.execute(); } }); If all you really want to do is delay the label disappearing, use a Timer instead of for-loops. --- BBBS/Li6 v4.10 Dada-1 * Origin: Prism bbs (1:261/38) --- Synchronet 3.16a-Win32 NewsLink 1.98 Time Warp of the Future BBS - telnet://time.synchro.net:24