2012-03-19 56 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