0

我已经对这个问题进行了彻底的研究,但没有用。希望你们能帮助我。首先十分感谢!

测试代码如下:

import javax.swing.JOptionPane;
public class JOptionPane_Test {
    public static void main(String[] args){
        String userExit="a";
        while (userExit!=null){
            userExit = JOptionPane.showInputDialog(null, "Message");
        }
    }
}

它只是显示一个等待用户响应的输入框,如果用户点击 OK 则重复,如果用户点击 Cancel 或 X 按钮则停止。在随机数次点击 OK(或 Enter Key)后,该框会停止。它只显示框的框架,带有 X 按钮,内部没有任何内容(没有消息、没有输入字段、没有确定或取消按钮)。我唯一能做的就是点击 X 按钮退出程序。

showMessageDialog 和 showInputDialog 都会发生这种情况。

我的日志显示此警告:

!会话 2013-07-09 14:00:12.666 -------------------------------------------------- --------- eclipse.buildId=4.3.0.I20130605-2000 java.version=1.7.0_25 java.vendor=Oracle Corporation BootLoader 常量:OS=win32, ARCH=x86, WS=win32, NL= en_US 框架参数:-product org.eclipse.epp.package.standard.product 命令行参数:-os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.standard.product

!ENTRY org.eclipse.egit.ui 2 0 2013-07-09 14:00:30.147 !MESSAGE 警告:EGit 无法检测到本机 Git 的安装路径“gitPrefix”。因此 EGit 不能尊重系统级别的 Git 设置,这些设置可能在本机 Git 安装目录下的 ${gitPrefix}/etc/gitconfig 中配置。这些设置中最重要的是 core.autocrlf。默认情况下,Windows 版 Git 在此系统级别配置中将此参数设置为 true。Git 安装位置可以在团队 > Git > 配置首选项页面的“系统设置”选项卡上进行配置。可以在 Team > Git > Confirmations and Warnings 首选项页面上关闭此警告。

但我怀疑这个警告与 JOptionPane 错误没有任何关系。还是我错了?

我在这个论坛上发现有人遇到了与我完全相同的问题,解决方案是检查 Eclipse 使用的编译器,确保它是 Sun 的而不是 GCJ。但是,我的一直是 Sun 的 java 7。

我已经尝试过 64 位和 32 位的 Eclipse。

任何帮助深表感谢!!

4

1 回答 1

0

我找到了解决方案!!!感谢Nick 我没有使用 null 父组件,而是将窗格添加到框架中,一切正常!这显然是一个 JOptionpane 错误。

重做代码:

import javax.swing.*;

public class JOptionPane_Test {
    public static void main(String[] args){
        String userExit="a";
        JFrame frame = new JFrame();
        while (userExit!=null){
            userExit = JOptionPane.showInputDialog(frame, "Message");
        }
    }
}
于 2013-07-10T04:46:23.820 回答