Java 无法键入JTextField

Java 无法键入JTextField,java,swing,jtextfield,Java,Swing,Jtextfield,我在日本RHEL5机器上遇到一个关于JTextField的小问题,用户无法在其中键入任何内容,我使用以下语法创建它 Container c = getContentPane(); c.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new I

我在日本RHEL5机器上遇到一个关于JTextField的小问题,用户无法在其中键入任何内容,我使用以下语法创建它

Container c = getContentPane();
c.setLayout(new GridBagLayout());

GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 10, 0), 0, 0);

c.setBackground(Color.WHITE);
JTextField txtName = new JTextField(10);
txtName.addKeyListener(new KeyListener() {

        @Override
        public void keyTyped(KeyEvent e) {

        }

        @Override
        public void keyReleased(KeyEvent e) {
            disableBtn();
        }

        @Override
        public void keyPressed(KeyEvent e) {
            // TODO Auto-generated method stub

        }
    });
    gbc.gridx = 1;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.anchor = GridBagConstraints.NORTHWEST;
    c.add(txtName, gbc);
若用户并没有在上面的文本字段中键入任何内容,disableBtn方法将禁用对话框上的按钮。 使用add方法将其添加到JPanel中,我使用GridBagLayout来实现这一点。这个问题发生在一些JTextField上,而其他JTextField工作正常。另外,在我的开发机器上,一切都很好,但当我将代码传输到日本RHEL5机器上时,出现了一个问题

我在JPasswordField中遇到过类似的问题,并使用以下方法解决了它:

password.setEchoChar('*');
password.enableInputMethods(true);
出现问题的机器有以下java-version命令的输出

# java -version
  

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

我认为这很好。这里有我遗漏的东西吗?

1您的代码没有显示什么是c.addtxtName,gbc;,这可能是最重要的原因,我认为你忽略了@Andrew Thompson的请求,这里发布的代码不是SSCCE

2不要使用,因为您必须具有setFocusable,我错过了这一行代码,供Swing JComponents使用


3对于仅使用的Listeneing

,您可能希望粘贴与JTextFields相关的不可编辑的代码片段。要更快地获得更好的帮助,请发布一个。这应在<20行代码中重复。顺便说一句,我使用以下语法创建它:JTextField=newjtextfield;不,你不是!由于错误的情况,该代码无法编译。请不要浪费人们试图帮助你的时间,张贴“类似”使用的代码。复制/粘贴,无论是SSCCE还是代码段。是的,我键入了它,但除此之外没有其他内容。我已经编辑了它。添加了一些代码,我认为可能没有必要。你们确定这是KeyListner的问题吗?因为它只有在键入密钥时才会出现,在我的情况下,密钥根本不会被键入,而且在我无法访问的日本机器上也是如此。你能详细说明一下KeyListner而不是DocumentListener的问题吗?对,你的想法是正确的,这段代码什么都没说,ContentPane来自JFrame,JDialog,JWindow,你真的想在这个论坛上提供帮助吗,为什么我们必须向你寻求帮助,你在这里发布的代码讨论了10%左右的潜在问题…请仔细看看我的问题,它在我发布的代码之后有关于对话框的声明。如果你想帮忙,那就帮忙而不是批评\m/JDialog、Dialog或Dialog???,如果您想提供帮助,请提供帮助,而不是批评\m/,有很多页面,您可以要求支持付款,我们只有没有VPN或RDP到您的计算机的voulunters,您请求帮助,然后您已经接受我们的规则,否则答案如您所见,要正确回答您的问题,我错过了我们在评论中提到的所有内容1删除KeyListener,2是否有另一个顶级容器,3是否有JDialog自己的父容器,4是否在初始线程上或从Swing Listener的某些线程中创建了对话框,5是否在两个本机操作系统上都可以看到JDialog的所有部件/JComponents