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

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>