在做基础 java swing程序的时候,我有一个奇怪的错误,我只在我的电脑上(我试过另外两个,一切都很好).
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
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 BoxLayout(panel,BoxLayout.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);
        }
}

问题是当我点击下拉菜单选择一个选项时出现错误.错误是:

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

正如你所看到的,一个错误发生但我仍然可以得到函数的结果所以我没有得到什么错误…任何线索?我在MacOS X Mountain Lion上使用Java 7.

好的,这是你问我的结果:
的System.out.println(System.getProperty( “java.vm.name”));给我:

Java HotSpot(TM) 64-Bit Server VM.

.System.getProperties()名单(的System.out);给我:

-- 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=

编辑:我忘了提到我尝试在另一个mac上完全像我的(除了我有更多的内存,但没关系)和在Windows 7计算机上.

解决方法

我在Mac Yosemite上遇到了与Java 7相同的问题.在我的情况下,它是由我用于在桌面上安排我的窗口的第三方工具“Cinch”引起的.取消激活该工具会使例外消失.

Java Swing中的IllegalComponentStateException的更多相关文章

  1. Java Swing实现画板的简单操作

    这篇文章主要介绍了Java Swing实现画板的简单操作,修改颜色,更改图形,清除,任务栏按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. Java Swing实现扫雷源码

    这篇文章主要为大家详细介绍了Java Swing实现扫雷源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Java+swing实现抖音上的表白程序详解

    这篇文章主要为大家详细介绍了如何利用Java swing实现抖音上的表白程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

  4. java swing GUI窗口美化方式

    这篇文章主要介绍了java swing GUI窗口美化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  5. IDEA的Swing可视化插件JFormDesigner详解

    JFormDesigner是一个专业的软件应用程序,专门用于帮助您开发Java Swing用户界面,而无需具备编程技能。它可作为独立实用程序使用,也可以将其用作各种IDE的插件,本文给大家介绍idea Swing可视化插件,感兴趣的朋友一起看看吧

  6. Java语言中Swing组件编程详解

    这篇文章主要为大家介绍了Java语言中Swing组件编程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  7. Java swing实现应用程序对数据库的访问问题

    这篇文章主要介绍了Java swing实现应用程序对数据库的访问,本次实验需要做一个GUI界面和一个连接查询功能,在论坛上借鉴了其他大佬获取网站内容的部分代码,然后自己做了一个及其简陋的swing界面,算是把这个实验完成了,需要的朋友可以参考下

  8. 在Java11中使用JscrollPane和JLayer时,Synthetica外观会引发类转换异常

    代码示例堆栈跟踪错误它在Java8中运行良好

  9. Windows 7外观上的Java Swing渲染错误?

    我应该报告吗?如果是这样,在哪里?谢谢!

  10. Windows 7触摸屏Java Swing =延迟的鼠标事件

    )是的,我试图简单地关闭触摸按住右键手势.不幸的是,这样做只是禁止绘制一个圆圈,指示你手指周围的右键手势和随后的右键点击.它不会消除潜在的问题:延迟鼠标下降事件长达六秒钟.我的问题:有没有办法:>理想情况下,向Windows指出我的应用程序是一个可触摸就绪的应用程序,因此它会立即发送事件?我可以看到,内置的软键盘正常工作,似乎.我只是希望我的Java应用程序也这样做.>完全禁用计算机上的延迟,但仍提供基本的触摸功能?

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部