我有一個文檔偵聽器,可以正常工作。但是,我想添加一些功能,以便當用戶點擊Enter鍵時,焦點轉移到另一個對象。我無法弄清楚如何捕捉這個。這裏是我的代碼:Java Swing:使用文檔偵聽器處理返回鍵
txtNum1.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
setAnswer(e);
}
@Override
public void removeUpdate(DocumentEvent e) {
setAnswer(e);
}
@Override
public void changedUpdate(DocumentEvent e) {
setAnswer(e);
}
private void setAnswer(DocumentEvent e) {
if (txtNum1.getText().equals("")) {
num1 = 0;
} else {
num1 = Integer.parseInt(txtNum1.getText());
}
calcAnswer();
System.out.println(e); //trying to output the event 'Enter'
}
我可以用一鍵收聽做到這一點,但我一直在罵這個網站關於使用這種方法之前,所以我想這個學習的正確方法。
謝謝!
編輯: 根據以下建議,我添加了下面的代碼,但它似乎沒有效果。任何人都可以看到我缺少的東西嗎?謝謝!
/* If the user hits the Enter key, we want the focus to shift to
* the next text field */
txtNum1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txtNum2.requestFocus();
}
});
我不得不承認,我會用一個關鍵的偵聽器來偵聽與文檔本身無關的關鍵事件(返回,轉義,功能鍵等) )...猜猜我現在也需要一個答案! – RudolphEst 2013-03-01 16:31:29
如果您不使用JTextField,那麼解決方案是使用[Key Bindings](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html)來監聽Enter鍵。 – camickr 2013-03-01 16:37:11