При вводе текста в текстовом поле включите нажатие клавиши ENTER, чтобы активировать кнопку в JavaFX.

Например, при вводе в поле поиска Google нажатие ENTER активирует поиск.

Я только что познакомился с JavaFX и Scene Builder несколько дней назад, поэтому я изучаю здесь основы. У меня есть последняя версия JavaFX, и я использую Scene Builder для облегчения событий действий. Кроме того, любые указатели на соответствующие учебные пособия будут полезны. В какой-то момент дня я был сосредоточен на разделе «Клавиатура» панели кодирования в Scene Builder, особенно с событием «При отпускании клавиши» без каких-либо результатов. заранее спасибо

Вот примерное представление о том, что я пытаюсь сделать:

@FXML
Text Field theTextField;

@FXML
Button theButton;

@FXML  
void ButtonPressed() {
    //do stuff here
}

@FXML
//when ENTER is pressed the button is activated
void textFieldEnterPressed() {
    ButtonPressed();
}

person cblupo    schedule 29.08.2013    source источник


Ответы (2)


В файле FXML добавьте обработчик onKeyPressed

 <TextField fx:id="yourTextField" onKeyPressed="#handleEnterPressed">

Внедрите обработчик в себя Controller

@FXML
public void handleEnterPressed(KeyEvent event)
    if (event.getCode() == KeyCode.ENTER) {
        // do some actions 
    }
}
person Salah Eddine Taouririt    schedule 29.08.2013

В TextField при нажатии Enter вы получаете уведомление через onAction. В свой код Java вы можете добавить:

@FXML
private void handleTFAction(ActionEvent event) {
    TextField source = (TextField)event.getSource();
    System.out.println("You entered: "+source.getText());
}

В вашем FXML (или через конструктор JavaFX SceneBuilder) подключите его к событию OnAction вашего TextField. В FXML это выглядит примерно так:

<TextField onAction="#handleTFAction" ... />
person Jarek    schedule 29.08.2013