DĂ©pendances JavaFX Maven
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>18.0.1</version>
</dependency>
</dependencies>
Code Java : Button fire et KeyCode
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) {
// Label de taille 24 où le numéro est affiché
Label label = new Label();
label.setFont(new Font(24));
// Les trois boutons
Button button1 = new Button("Bouton 1");
Button button2 = new Button("Bouton 2");
Button button3 = new Button("Bouton 3");
// Les événements sur les boutons
button1.setOnAction(event -> {
label.setText("1");
});
button2.setOnAction(event -> {
label.setText("2");
});
button3.setOnAction(event -> {
label.setText("3");
});
// Affichage des boutons à l'horizontal
HBox buttons = new HBox(button1, button2, button3);
// Affichage du label et du bloc des boutons à la vertical
VBox root = new VBox(label, buttons);
// Ecouteur d'événement clavier sur la racine
root.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
// Récupération du code de la touche
KeyCode eventKeyCode = event.getCode();
// Si touche clavier 1 ou pavé numérique 1
if (eventKeyCode == KeyCode.DIGIT1 || eventKeyCode == KeyCode.NUMPAD1) {
// Focus sur le bouton
button1.requestFocus();
// Appuyer sur le bouton
button1.fire();
// Consomation de l'événement pour éviter la propagation
event.consume();
} else if (eventKeyCode == KeyCode.DIGIT2 || eventKeyCode == KeyCode.NUMPAD2) {
button2.requestFocus();
button2.fire();
event.consume();
} else if (eventKeyCode == KeyCode.DIGIT3 || eventKeyCode == KeyCode.NUMPAD3) {
button3.requestFocus();
button3.fire();
event.consume();
}
});
// Scene et affichage de la fenêtre
Scene scene = new Scene(root, 200, 100);
stage.setScene(scene);
stage.show();
}
}
Commentaires
Enregistrer un commentaire