Recherche…


Ajouter un écouteur d'action

Les boutons déclenchent des événements d'action lorsqu'ils sont activés (par exemple, cliqué, une reliure du bouton est pressée, ...).

button.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        System.out.println("Hello World!");
    }
});

Si vous utilisez Java 8+, vous pouvez utiliser lambdas pour les auditeurs d'action.

button.setOnAction((ActionEvent a) -> System.out.println("Hello, World!"));
// or
button.setOnAction(a -> System.out.println("Hello, World!"));

Ajouter un graphique à un bouton

Les boutons peuvent avoir un graphique. graphic peut être n'importe quel noeud JavaFX, comme un ProgressBar

button.setGraphic(new ProgressBar(-1));

Une ImageView

button.setGraphic(new ImageView("images/icon.png"));

Ou même un autre bouton

button.setGraphic(new Button("Nested button"));

Créer un bouton

La création d'un Button est simple:

Button sampleButton = new Button();

Cela créera un nouveau Button sans texte ni graphique à l'intérieur.

Si vous souhaitez créer un Button avec un texte, utilisez simplement le constructeur qui prend un paramètre String comme paramètre (ce qui définit la textProperty du Button ):

Button sampleButton = new Button("Click Me!");

Si vous souhaitez créer un Button avec un graphique à l'intérieur ou tout autre Node , utilisez ce constructeur:

Button sampleButton = new Button("I have an icon", new ImageView(new Image("icon.png")));

Boutons par défaut et Annuler

Button API de Button permet d'attribuer facilement des raccourcis clavier communs aux boutons sans avoir besoin d'accéder à la liste des accélérateurs affectée à Scene ou d'écouter explicitement les événements clés. À savoir, deux méthodes de commodité sont fournies: setDefaultButton et setCancelButton :

  • setDefaultButton vous setDefaultButton sur true , le Button se déclenche chaque fois qu'il reçoit un événement KeyCode.ENTER .

  • setCancelButton vous setCancelButton sur true , le Button se déclenche chaque fois qu'il reçoit un événement KeyCode.ESCAPE .

L'exemple suivant crée une Scene avec deux boutons activés lorsque vous appuyez sur les touches Entrée ou Echap, qu'elles soient ou non mises au point.

FlowPane root = new FlowPane();
        
Button okButton = new Button("OK");
okButton.setDefaultButton(true);
okButton.setOnAction(e -> {
    System.out.println("OK clicked.");
});
        
Button cancelButton = new Button("Cancel");            
cancelButton.setCancelButton(true);
cancelButton.setOnAction(e -> {
    System.out.println("Cancel clicked.");
});
        
root.getChildren().addAll(okButton, cancelButton);
Scene scene = new Scene(root);

Le code ci-dessus ne fonctionnera pas si ces éléments KeyEvents sont utilisés par un Node parent:

scene.setOnKeyPressed(e -> {
    e.consume();
});


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow