Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.gui > #5288
| From | Knute Johnson <nospam@knutejohnson.com> |
|---|---|
| Newsgroups | comp.lang.java.gui |
| Subject | Re: Outside of the EDT: JOptionPane.showMessageDialog |
| Date | 2012-12-27 09:06 -0800 |
| Organization | A noiseless patient Spider |
| Message-ID | <kbhv7n$iij$1@dont-email.me> (permalink) |
| References | <EDT-20121227033249@ram.dialup.fu-berlin.de> <kbgoak$ass$1@dont-email.me> <showMessageDialog-20121227071317@ram.dialup.fu-berlin.de> <nospam-D5E268.10234727122012@news.aioe.org> <EDT-20121227165216@ram.dialup.fu-berlin.de> |
On 12/27/2012 7:53 AM, Stefan Ram wrote:
> "John B. Matthews" <nospam@nospam.invalid> writes:
>> I'd say no. If the dialog is not constructed on the EDT, then
>
> I the meantime, I also started to see it this way. So, then
>
> public static void main( final java.lang.String args[] )
> { final java.lang.String name = JOptionPane.showInputDialog
> ( "Hi, what's your name?" ); /* ... */ }
>
> is no good idea in a beginner's book (I saw something like
> this in a Java textbook from 2011).
>
I was curious to see if calling JOptionPane.showMessageDialog() would
start the EDT and in fact it does. Below are the AWT-EventQueue-0
thread traces from jconsole. I don't really know what they mean but
they are slightly different depending on whether the call was put on the
EDT.
I'll tell you that I always wrap any calls to JOptionPane.show... in
EventQueue.invokeLater if I'm not already on the EDT. I don't know that
it matters but I can't find any documentation anywhere that says you
don't need to do that.
I think I'm going to go look through the source again and see if I can
find where the EDT gets started.
import javax.swing.*;
public class test6 {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null,"test6");
}
}
Name: AWT-EventQueue-0
State: WAITING on
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@baecb8
Total blocked: 6 Total waited: 8
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown
Source)
java.awt.EventQueue.getNextEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.WaitDispatchSupport$2.run(Unknown Source)
java.awt.event.InvocationEvent.dispatch(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$200(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
import java.awt.*;
import javax.swing.*;
public class test6 {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JOptionPane.showMessageDialog(null,"test6");
}
});
}
}
Name: AWT-EventQueue-0
State: WAITING on
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@448192
Total blocked: 3 Total waited: 8
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown
Source)
java.awt.EventQueue.getNextEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.WaitDispatchSupport$2.run(Unknown Source)
java.awt.WaitDispatchSupport$4.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.awt.WaitDispatchSupport.enter(Unknown Source)
java.awt.Dialog.show(Unknown Source)
javax.swing.JOptionPane.showOptionDialog(Unknown Source)
javax.swing.JOptionPane.showMessageDialog(Unknown Source)
javax.swing.JOptionPane.showMessageDialog(Unknown Source)
javax.swing.JOptionPane.showMessageDialog(Unknown Source)
test6$1.run(test6.java:8)
java.awt.event.InvocationEvent.dispatch(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$200(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.awt.EventQueue$3.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
--
Knute Johnson
Back to comp.lang.java.gui | Previous | Next — Previous in thread | Next in thread | Find similar
Re: Outside of the EDT: JOptionPane.showMessageDialog Knute Johnson <nospam@knutejohnson.com> - 2012-12-26 22:03 -0800
Re: Outside of the EDT: JOptionPane.showMessageDialog "John B. Matthews" <nospam@nospam.invalid> - 2012-12-27 10:23 -0500
Re: Outside of the EDT: JOptionPane.showMessageDialog Knute Johnson <nospam@knutejohnson.com> - 2012-12-27 09:06 -0800
Re: Outside of the EDT: JOptionPane.showMessageDialog "John B. Matthews" <nospam@nospam.invalid> - 2012-12-27 16:16 -0500
Re: Outside of the EDT: JOptionPane.showMessageDialog "John B. Matthews" <nospam@nospam.invalid> - 2012-12-27 16:34 -0500
Re: Outside of the EDT: JOptionPane.showMessageDialog "John B. Matthews" <nospam@nospam.invalid> - 2012-12-29 10:38 -0500
Re: Outside of the EDT: JOptionPane.showMessageDialog Lew <lewbloch@gmail.com> - 2012-12-31 12:00 -0800
csiph-web