Illegalcomponentstateexception in Java Swing
When making the basic Java Swing program, I made a strange mistake. I only made it on my computer (I tried the other two and everything was fine)
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.@R_811_2419@Layout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class ModalDialogsTest extends JFrame implements ActionListener{
private JButton choice;
ModalDialogstest(){
setSize(400,300);
JPanel panel = new JPanel();
getContentPane().add(panel);
panel.setLayout(new @R_811_2419@Layout(panel,@R_811_2419@Layout.Y_AXIS));
choice = new JButton("My button");
panel.add(choice);
choice.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
simpleStringChoiceDialog();
}
private void simpleStringChoiceDialog(){
Object[] possibilities = {"choice 1","choice 2","choice 3"};
String s = (String)JOptionPane.showInputDialog(
this,null,JOptionPane.PLAIN_MESSAGE,possibilities,possibilities[0]);
System.out.println(s);
}
public static void main(String[] args) {
ModalDialogsTest newWindow = new ModalDialogstest();
newWindow.setVisible(true);
}
}
The problem is that there is an error when I click the drop-down menu to select an option The error is:
java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2044)
at java.awt.Component.getLocationOnScreen(Component.java:2018)
at sun.lwawt.macosx.CAccessibility$22.call(CAccessibility.java:390)
at sun.lwawt.macosx.CAccessibility$22.call(CAccessibility.java:388)
at sun.lwawt.macosx.LWCToolkit$CallableWrapper.run(LWCToolkit.java:527)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:241)
at sun.lwawt.macosx.LWCToolkit$CPeerEvent.dispatch(LWCToolkit.java:684)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1077)
at javax.swing.JOptionPane.showInputDialog(JOptionPane.java:583)
at ModalDialogsTest.simpleStringChoiceDialog(ModalDialogsTest.java:109)
at ModalDialogsTest.actionPerformed(ModalDialogsTest.java:70)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
choice 2
As you can see, an error occurred, but I can still get the result of the function, so I didn't get any error... Any clue? I use Java 7.0 on MacOS X mountain lion
OK, here is the result you asked me: system out. println(System.getProperty( “java.vm.name”)); Give me:
Java HotSpot(TM) 64-Bit Server VM.
. System. Getproperties () list (system. Out); Give me:
-- listing properties -- java.runtime.name=Java(TM) SE Runtime Environment sun.boot.library.path=/Library/Java/JavaVirtualMachines/jdk... java.vm.version=23.3-b01 user.country.format=IE gopherProxySet=false java.vm.vendor=Oracle Corporation java.vendor.url=http://java.oracle.com/ path.separator=: java.vm.name=Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg=sun.io user.country=FR sun.java.launcher=SUN_STANDARD sun.os.patch.level=unkNown java.vm.specification.name=Java Virtual Machine Specification user.dir=/Users/hugo/Documents/workspace/dialogs java.runtime.version=1.7.0_07-b10 java.awt.graphicsenv=sun.awt.CGraphicsEnvironment java.endorsed.dirs=/Library/Java/JavaVirtualMachines/jdk... os.arch=x86_64 java.io.tmpdir=/var/folders/2n/q2bb2df90qqb_x38djlwx... line.separator= java.vm.specification.vendor=Oracle Corporation os.name=Mac OS X sun.jnu.encoding=US-ASCII java.library.path=/Users/hugo/Library/Java/Extensions:/... java.specification.name=Java Platform API Specification java.class.version=51.0 sun.management.compiler=HotSpot 64-Bit Tiered Compilers os.version=10.8 http.nonProxyHosts=local|*.local|169.254/16|*.169.254/16 user.home=/Users/hugo user.timezone= java.awt.printerjob=sun.lwawt.macosx.CPrinterJob file.encoding=US-ASCII java.specification.version=1.7 user.name=hugo java.class.path=/Users/hugo/Documents/workspace/dialo... java.vm.specification.version=1.7 sun.arch.data.model=64 java.home=/Library/Java/JavaVirtualMachines/jdk... sun.java.command=ModalDialogsTest java.specification.vendor=Oracle Corporation user.language=fr user.language.format=en awt.toolkit=sun.lwawt.macosx.LWCToolkit java.vm.info=mixed mode java.version=1.7.0_07 java.ext.dirs=/Users/hugo/Library/Java/Extensions:/... sun.boot.class.path=/Library/Java/JavaVirtualMachines/jdk... java.vendor=Oracle Corporation file.separator=/ java.vendor.url.bug=http://bugreport.sun.com/bugreport/ sun.cpu.endian=little sun.io.unicode.encoding=UnicodeBig sun.font.fontmanager=sun.font.CFontManager socksNonProxyHosts=local|*.local|169.254/16|*.169.254/16 ftp.nonProxyHosts=local|*.local|169.254/16|*.169.254/16 sun.cpu.isalist=
Editor: I forgot to mention that I tried to look exactly like mine on another MAC (except I have more memory, but it doesn't matter) and on a Windows 7 computer
Solution
I had the same problem with Java 7 on MAC Yosemite In my case, it was caused by the third-party tool "cinch" I used to arrange my windows on the desktop Deactivating the tool will make the exception disappear
