Re: (newbie) How to get the UI to update right away
- From: Knute Johnson <nospam@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 27 Jun 2008 08:37:16 -0700
mrstephengross wrote:
So here's my next swing question: I've got a combo box with an action
listener. When you make a selection from the combo box, the action
listener fires off and does a bunch of stuff that takes a few seconds
to execute.
However! While the action listener is executing, the combo box does
NOT collapse. That is, I would expect it to first collapse (with the
new selection highlighted) and THEN fully executed the action
listener's code.
Is there a way to do this? I've been trying out various
implementations of the action listener to get it work, such as:
public void actionPerformed(ActionEvent e)
{ comboBox.setPopupVisible(false); /* do other stuff */; }
public void actionPerformed(ActionEvent e) { comboBox.validate(); /
* do other stuff */; }
public void actionPerformed(ActionEvent e)
{ applicationFrame.validate(); /* do other stuff */; }
But nothing seems to work. I've even tried the:
SwingUtilities.invokeLater(new Runnable() { comboBox.validate(); /
*...*/ });
trick, to no avail. Any ideas? Or am I just misunderstanding the UI's
built-in behavior?
Thanks,
--Steve
You are blocking the Event Dispatch Thread. ActionListener (and most other listeners) perform their event handling on the EDT. So while your code is off for a few seconds it is preventing your GUI from updating. Just wrap your time consuming code in a Runnable and start another thread.
public void actionPeformed(ActionEvent ae) {
Runnable r = new Runnable() {
public void run() {
// time consuming task
}
};
new Thread(r).start();
}
If you have to update the GUI with the results of your time consuming task you may or may not have to wrap that code in EventQueue.invokeLater() to get it to execute on the EDT. Most Swing methods are not thread safe and need to be executed on the EDT. Check the docs for which are which.
--
Knute Johnson
email s/nospam/knute2008/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access
.
- Follow-Ups:
- Re: (newbie) How to get the UI to update right away
- From: RedGrittyBrick
- Re: (newbie) How to get the UI to update right away
- References:
- (newbie) How to get the UI to update right away
- From: mrstephengross
- (newbie) How to get the UI to update right away
- Prev by Date: Re: (newbie) How to get the UI to update right away
- Next by Date: Re: Serial Port Communications with GUI
- Previous by thread: Re: (newbie) How to get the UI to update right away
- Next by thread: Re: (newbie) How to get the UI to update right away
- Index(es):
Relevant Pages
|