2013-05-10 72 views
1

我有一個叫做Name的JTextField和一個叫做Address的JTextArea。我的要求是當用戶在JTextField中輸入名稱並按下時輸入鍵,光標應該移到下一個文本區域,即地址。將光標從一個JTextField傳送到另一個輸入press?

目前,人們可以通過按Tab鍵(我相信是默認值)從一個文本框移動到另一個文本框。我想禁止這個,只能通過ENTER鍵來傳輸光標。

我試過transferfocus(),但回車鍵沒有把光標移到文本區域。我如何實現這一目標?

+0

您是否嘗試過'RequestFocus()'? – ErrorNotFoundException 2013-05-10 10:59:12

+0

向我們展示您的代碼以便捕獲並按ENTER鍵按下。 – 2013-05-10 11:00:33

回答

1

我的要求是當用戶在JTextField中輸入了名字並按下回車鍵時,光標應該轉到地址的下一個文本區域。

假設組件遵循彼此在正常Tab鍵順序,你可以寫通用代碼:

Action enterAction = new AbstractAction() 
{ 
    @Override 
    public void actionPerformed(ActionEvent e) 
    { 
     KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); 
     manager.getFocusOwner().transferFocus(); 
    } 
} 

... 

textField.addActionListener(enterAction); 

目前可以通過按下tab鍵(我相信從一個文本框移動到其他是默認的)。我想禁止這個,只能通過ENTER鍵傳輸光標。

你爲什麼要禁止這個。正如你所說的tab是默認的,所以大多數用戶都會熟悉這種方法。不要重新創建用戶界面並給用戶一個選擇。

0

我想你使用Swing..Sorry晚期回覆..

的JTextField - >右鍵 - >轉到按鍵事件

private void NameKeyPressed(java.awt.event.KeyEvent evt) { 
     int a = evt.getKeyCode(); 
     if (a == 10) {      // for enter key 
      Address.requestFocus(); 
     } 
} 
-1

@薩蒂亞的答案是正確的,但略有改動避免幻數是:

private void jTextFieldItmCodeKeyPressed(java.awt.event.KeyEvent evt) {            
    if(evt.getKeyCode()==KeyEvent.VK_ENTER){ 
     Address.requestFocus(); 
    } 
} 
相關問題