javafx
Bouton
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
voussetDefaultButton
surtrue
, leButton
se déclenche chaque fois qu'il reçoit un événementKeyCode.ENTER
.setCancelButton
voussetCancelButton
surtrue
, leButton
se déclenche chaque fois qu'il reçoit un événementKeyCode.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();
});