open a JFileChooser/ modal window will block the event dispatching thread

Please tell me whether opening a JFileChooser/ modal window in event handling code will block the event dispatching thread.

Thank you
pdidominicAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

CEHJCommented:
Yes it will. Use a SwingWorker
0
Mick BarryJava DeveloperCommented:
no it won't
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Mick BarryJava DeveloperCommented:
If it did then opening JFileChooser would freeze up your gui
you'll find example and discussion here
http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html
0
Build an E-Commerce Site with Angular 5

Learn how to build an E-Commerce site with Angular 5, a JavaScript framework used by developers to build web, desktop, and mobile applications.

CEHJCommented:
>>If it did then opening JFileChooser would freeze up your gui

(which is exactly what it does do)

All you need to do to demonstrate this is to try to close your main window with the file chooser dialog open
0
pdidominicAuthor Commented:
i have a little confuse here. Despite the JFileChooser dialog blocks the actionPerform event handling code as the following snippet but the event dispatching thread is still executed :-??

public class FileChooser extends JFrame
{
	public FileChooser()
	{
		initComponents();
		Runnable runner = new Runnable()
		{
			public void run()
			{
				ActionListener actionListener = new ActionListener()
				{
					public void actionPerformed(ActionEvent actionEvent)
					{
						testTxt.setText(testTxt.getText() + 'a');
						System.out.println(SwingUtilities.isEventDispatchThread());
					}
				};
				Timer timer = new Timer(500, actionListener);
				timer.start();
			}
		};
		EventQueue.invokeLater(runner);
	}
 
	public static void main(String[] args)
	{
		
		new FileChooser().setVisible(true);
		
	}
 
	private void startBtnActionPerformed(ActionEvent e)
	{
		JFileChooser fileChoose = new JFileChooser();
		
		System.out.println(SwingUtilities.isEventDispatchThread() + "---------");
		fileChoose.showOpenDialog(FileChooser.this);
		System.out.println(SwingUtilities.isEventDispatchThread() + "---------");
	}

Open in new window

0
ksivananthCommented:
>>All you need to do to demonstrate this is to try to close your main window with the file chooser dialog open

I think, object is right, it will block UI( parent ) but not the event dispatching thread! if the event dispatching thread blocked, you will not see the drawing in the back UI, all will be greyed out!
0
pdidominicAuthor Commented:
in this snippet, i have a simple form with a textarea and a button. Pressing the button will open a file chooser dialog. I also have a Timer that constantly updates the textarea.
0
CEHJCommented:
>>it will block UI( parent )

UIs don't get blocked - only threads get blocked ;-)
0
CEHJCommented:
http://en.wikipedia.org/wiki/Modal_window

Look at the first sentence under criticisms (which to me is absurd - if you don't want it to block workflow then don't make it modal)
0
Mick BarryJava DeveloperCommented:
> but the event dispatching thread is still executed :-??

thats because the event dispatch thread does *not* get blocked as I stated above.
0
Mick BarryJava DeveloperCommented:
> in this snippet, i have a simple form with a textarea and a button. Pressing the button will open a
> file chooser dialog. I also have a Timer that constantly updates the textarea.

And does it continue to update?  That should verify whether it is blocked or not.
0
Mick BarryJava DeveloperCommented:
(-:
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Editors IDEs

From novice to tech pro — start learning today.