Re: Can you get this SwingWorker code to work more than once
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.