2012-09-20 62 views
2

我正在使用JavaFX 2.2中的應用程序。我使用兩個字段(用戶名和密碼)登錄到活動目錄並登錄按鈕。這一切都完美。不過,我已經添加了一個KeyEvent EventHandler來處理按下ENTER鍵的關鍵事件。問題是當用戶按下SHIFT鍵時也會使用它。以下是我的Handler的代碼,並且在應用程序中沒有使用其他KeyEvent處理程序。javafx 2.2 keycode.enter

import javafx.scene.input.KeyCode; 
import javafx.scene.input.KeyEvent; 
... 
private EventHandler<KeyEvent> keyListener = new EventHandler<KeyEvent>() { 
    @Override 
    public void handle(KeyEvent event) { 
     if(event.getCode() == KeyCode.ENTER); { 
      startLogin(); 
      getContext(); 
      try { 
       checkUserLevel(); 
      } catch (Exception e) { 
       actionTarget.setText("Unable to authenticate user\n" + userTextField.getText()); 
      } 
      event.consume(); 
     } 
    } 
}; 

這是JavaFX中的錯誤嗎?

回答

5

您必須刪除分號。從

if(event.getCode() == KeyCode.ENTER); { 

if(event.getCode() == KeyCode.ENTER) { 

此外,在Swing我肯定知道你可以添加一個ActionListenerJTextBox直接,而JTextBox如按下回車時,它會觸發的動作事件焦點。它會阻止你的行爲在無關的情況下被觸發。希望JavaFX中存在類似的東西!哈哈!

+0

哈!我不敢相信我沒有看到...... Oi謝謝! – xannash