That invokeLater is entirely pointless. You may as well write:
private class ZoomListener implements ActionListener {
public void actionPerformed(ActionEvent ev) {
cardLayout.show(contentPane, "Progress Panel");
repaint();
}
}
Though I doubt you even need the repaint().
On Wed, Feb 9, 2011 at 9:09 PM, Eric <[email protected]> wrote:
> My first attempt at threading is a failure. The gui still appears to
> update only after my event method is complete. I'll try to implement
> your worker code. Thanks.
> Here's my apparently failed attempt.
>
> private class ZoomListener implements ActionListener {
> public void actionPerformed(ActionEvent ev) {
> loadProgress();
> ...
> }
> }
> private void loadProgress() {
> Runnable doShowProgressPanel = new Runnable() {
> public void run() {
> cardLayout.show(contentPane, "Progress Panel");
> repaint();
> }
> };
> SwingUtilities.invokeLater(doShowProgressPanel);
> }
>
> This code is all within my custom class which extends JFrame.
>
> On Feb 9, 3:44 pm, Ricky Clarkson <[email protected]> wrote:
>> 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.- Hide quoted text -
>>
>> - Show quoted text -
>
> --
> 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.