Doing it later but on the EDT isn't a good move.
SwingWorker is the answer, though it's imo not the best API, as it
swallows exceptions unless you override done() to call get(). Because
of that, I use my own subclass of SwingWorker<Void, Void>, as follows:
import java.util.concurrent.ExecutionException;
import javax.swing.SwingWorker;
public abstract class Worker extends SwingWorker<Void, Void> {
protected void afterDone() {
}
@Override
public final void done() {
try {
get();
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (ExecutionException e) {
throw new RuntimeException(e);
}
afterDone();
}
}
If you have something else you want to do on the EDT after the
contents of doInBackground() you just override afterDone(). Probably
not the best naming, but it fills the hole.
On Wed, Feb 9, 2011 at 8:32 PM, Alexey Zinger <[email protected]> wrote:
> SwingUtilities.invokeLater FTW!
>
> Alexey
> 2001 Honda CBR600F4i (CCS)
> 1998 Honda RS125 (CCS)
> 2002 Suzuki Bandit 1200S
> http://azinger.blogspot.com
> http://bsheet.sourceforge.net
> http://wcollage.sourceforge.net
>
>
> ________________________________
> From: Eric <[email protected]>
> To: The Java Posse <[email protected]>
> Sent: Wed, February 9, 2011 3:15:15 PM
> Subject: [The Java Posse] Re: Java Swing problem
>
> Odd that a request on Google Groups about which group to try for help
> with Java got several responses all pointing to other websites.
> In the lag time between making this post here and having it appear on
> this group thread list I did find a Java group called
> comp.lang.java.help.
> I didn't exactly find the solution but I did figure out the problem.
> I'm trying to execute some code in a Java event listener action method
> which takes some time.
> At the start of that method I want to show something on the screen to
> let the user know it's processing.
> At the end of the method I want it to show their new screen that
> processing just generated.
> The display from the start of the method never appears. Apparently
> Java won't update gui while it's processing.
> It appears to be a threading issue.
>
> On Feb 9, 10:40 am, Casper Bang <[email protected]> wrote:
>> > Is this a good group for a programming question, or can anyone point
>> > me to one?
>>
>> Nope this is more of a meta group, revolving around the JavaPosse GoF.
>> Oracle have stirred the pot of established forums, but I do believe
>> this is your best
>> bet:http://forums.oracle.com/forums/forum.jspa?forumID=950
>
> --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/javaposse?hl=en.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/javaposse?hl=en.
>
--
You received this message because you are subscribed to the Google Groups "The
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.