2012-03-19 55 views
-1

我对日本RHEL5机用户不能在这上面输入任何具有JTextField的一个小问题,我使用下面的语法无法输入的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中,其他人工作正常。另外,在我的开发机器上运行良好,但是当我将代码传输到日本的RHEL5机器时,存在问题。

我已经面临着类似的问题与JPasswordField中,并使用以下解决它,

password.setEchoChar('*'); 
password.enableInputMethods(true); 

的具有机器问题是具有下列的 “Java的版本” 命令输出,

# 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) 

我认为这很好。有什么我在这里失踪了吗?

+0

你可能要粘贴与不可编辑的JTextField相关的代码片段。 – asgs 2012-03-19 08:12:43

+2

为了尽快提供更好的帮助,请发布** [SSCCE](http://sscce.org/)**。这应该可以在<20行代码中重现。顺便说一句 - *“我用下面的语法创建它 'JTextField field = new JtextField();'”*不,你不是!该代码不会编译(由于错误的情况)。请不要浪费人们试图帮助你的时间,通过发布类似于所用代码的东西。 ***复制/粘贴***无论是SSCCE还是代码片段。 – 2012-03-19 08:17:25

+0

是的,我输入了它,但除此之外没有别的。无论如何我都编辑过它。 – 2012-03-19 09:18:31

回答

3

1)你的代码din't显示的是c.add(txtName, gbc);,有可能是最重要的原因,我觉得你漂亮的@Andrew Thompson忽略请求,代码贴在这里是不是SSCCE,

2)不要” T选用Keylistener,因为你的JTextComponent必须setFocusable(),我错过了这行代码,用于摇摆JComponents使用KeyBindings

3)listenening到JTextComponents只使用DocumentListener

+0

增加了一些代码,我认为这可能不是必需的。你确定它是KeyListner的问题,因为它只有在输入密钥时才会显示出来,在我的情况下,密钥根本不会被输入,而且在我没有访问权限的日本机器上也是如此。您能否详细说明DocumentListener上KeyListner的问题。 – 2012-03-19 09:48:54

+0

对你的想法是正确的,这段代码没有谈论什么,ContentPane来自JFrame,JDialog,JWindow,你真的想在这个论坛上提供帮助,为什么我们必须要求你的帮助,你在这里发布的代码是关于从潜在的10pct存在的问题...... – mKorbel 2012-03-19 09:54:02

+0

请仔细看看我的问题,它在我发布的代码之后有关于Dialog的声明。如果你想帮忙,那么帮忙而不是批评。 \ m/ – 2012-03-19 09:58:50