Est-il possible d'ajouter un ActionEvent Gestionnaire d'un javaFX Textfield à l'aide de addEventHandler méthode?
J'ai essayé d'ajouter l'action des gestionnaires de champ de texte à l'aide de la addEventHandler (), mais ne semblent pas fonctionner. Est-il possible, o est-ce un bug? Si je tente la même chose avec le Bouton de contrôle, tout va bien.
Voici un exemple de code:
package com.teste;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class EventHandlerTest extends Application {
@Override
public void start(Stage stage) throws Exception {
//TODO Auto-generated method stub
stage.setTitle("Custom JavaFX Event");
TextField btn = new TextField();
btn.setId("Fire Button");
btn.setText("Fire MyEvent'");
btn.addEventHandler(ActionEvent.ACTION, new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (event.getEventType().equals(ActionEvent.ACTION)) {
System.out.println("ActionEvent 2");
}
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
stage.setScene(new Scene(root, 300, 250));
stage.show();
}
/**
* @param args
*/
public static void main(String[] args) {
//TODO Auto-generated method stub
launch(args);
}
}
Documentation dit qu'il devrait être possible, mais ne peut pas trouver autre chose. Des idées?
OriginalL'auteur Hugo Guerrero | 2012-08-27
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez setOnAction plutôt que addEventHandler, alors vous serez en mesure de capturer l'ActionEvent pour le TextField.
Je ne sais pas pourquoi le addEventHandler ne contient pas de code de capture de l'événement. J'ai aussi essayé addEventFilter ainsi et cela ne fonctionne pas pour moi non plus (JavaFX 2.2).
Noter qu'un TextField va générer un ActionEvent lorsque vous appuyez sur la touche Entrée sur le TextField.
Ouvert Jira Question: javafx-jira.kenai.com/browse/RT-24536
RT-24536 a été fixée pour Java 8
OriginalL'auteur jewelsea
Dans java 8 est maintenant possible
OriginalL'auteur memotilas