Un bouton est un contrôle qui déclenche un événement d'action lorsqu'on clique dessus. JavaFX fournit des boutons normaux, des boutons à bascule, des boutons de case à cocher et des boutons radio. Les caractéristiques communes de ces boutons sont définies dans les classes ButtonBase et Labeled, comme le montre la figure ci-dessous.
La classe Labeled définit les propriétés communes aux étiquettes et aux boutons. Un bouton est comme une étiquette, sauf que le bouton a la propriété onAction définie dans la classe ButtonBase, qui définit un gestionnaire pour gérer l'action d'un bouton.
Le code ci-dessous donne un programme qui utilise les boutons pour contrôler le mouvement d'un texte, comme le montre la figure ci-dessous.
package application; import javafx.application.Application; import javafx.stage.Stage; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.image.ImageView; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.text.Text; public class ButtonDemo extends Application { protected Text text = new Text(50, 50, "JavaFX Programming"); protected BorderPane getPane() { HBox paneForButtons = new HBox(20); Button btLeft = new Button("Left", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg")); Button btRight = new Button("Right", new ImageView("file:/C:/Users/Paul/development/MyJavaFX/src/application/image/lo.jpg")); paneForButtons.getChildren().addAll(btLeft, btRight); paneForButtons.setAlignment(Pos.CENTER); paneForButtons.setStyle("-fx-border-color: green"); BorderPane pane = new BorderPane(); pane.setBottom(paneForButtons); Pane paneForText = new Pane(); paneForText.getChildren().add(text); pane.setCenter(paneForText); btLeft.setOnAction(e -> text.setX(text.getX() - 10)); btRight.setOnAction(e -> text.setX(text.getX() + 10)); return pane; } @Override // Override the start method in the Application class public void start(Stage primaryStage) { // Create a scene and place it in the stage Scene scene = new Scene(getPane(), 450, 200); primaryStage.setTitle("ButtonDemo"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stage } public static void main(String[] args) { Application.launch(args); } }
Le programme crée deux boutons btLeft et btRight, chaque bouton contenant un texte et une image (lignes 18-19). Les boutons sont placés dans une HBox (ligne 20) et la HBox est placée en bas d'un volet de bordure (ligne 25). Un texte est créé à la ligne 14 et est placé au centre du volet de bordure (ligne 29). Le gestionnaire d'action pour btLeft déplace le texte vers la gauche (ligne 31). Le gestionnaire d'action pour btRight déplace le texte vers la droite (ligne 32).
Le programme définit volontairement une méthode protégée getPane() pour renvoyer un volet (ligne 16). Cette méthode sera remplacée par les sous-classes dans les exemples à venir pour ajouter plus de nœuds dans le volet. Le texte est déclaré protégé afin d'être accessible aux sous-classes (ligne 14).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!