Bouton
Jul 16, 2024 pm 10:02 PMUn 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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Top 4 frameworks JavaScript en 2025: React, Angular, Vue, Svelte

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation?

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance?

Comment puis-je implémenter des techniques de programmation fonctionnelle en Java?

Node.js 20: Boosts de performances clés et nouvelles fonctionnalités

Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave?

Révolutionner les pipelines de données avec Apache Kafka en 2025

Iceberg: L'avenir des tables de Data Lake
