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


Groups > comp.lang.java.programmer > #17458

Re: Can you get this SwingWorker code to work more than once

From markspace <-@.>
Newsgroups comp.lang.java.programmer
Subject Re: Can you get this SwingWorker code to work more than once
Date 2012-08-09 09:11 -0700
Organization A noiseless patient Spider
Message-ID <k00nfs$8b7$1@dont-email.me> (permalink)
References <d88d5a10-6b44-4917-9bc3-dee0b5d745f1@googlegroups.com> <k00m3o$uos$1@dont-email.me> <4cc76fc2-fffc-470d-b4c6-0be778070523@googlegroups.com>

Show all headers | View raw


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.

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Can you get this SwingWorker code to work more than once clusardi2k@aol.com - 2012-08-09 08:24 -0700
  Re: Can you get this SwingWorker code to work more than once Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-09 11:48 -0400
    Re: Can you get this SwingWorker code to work more than once clusardi2k@aol.com - 2012-08-09 08:55 -0700
      Re: Can you get this SwingWorker code to work more than once markspace <-@.> - 2012-08-09 09:11 -0700
      Re: Can you get this SwingWorker code to work more than once Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-09 14:29 -0400
    Re: Can you get this SwingWorker code to work more than once clusardi2k@aol.com - 2012-08-09 09:11 -0700
      Re: Can you get this SwingWorker code to work more than once Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-09 14:31 -0400
  Re: Can you get this SwingWorker code to work more than once Knute Johnson <nospam@knutejohnson.com> - 2012-08-09 09:18 -0700

csiph-web