Un botón es un control que desencadena un evento de acción cuando se hace clic. JavaFX proporciona botones normales, botones de alternancia, botones de casilla de verificación y botones de opción. Las características comunes de estos botones se definen en las clases ButtonBase y Labeled como se muestra en la siguiente figura.
La clase Labeled define las propiedades comunes para etiquetas y botones. Un botón es como una etiqueta excepto que el botón tiene la propiedad onAction definida en la clase ButtonBase, que establece un controlador para manejar la acción de un botón.
El siguiente código proporciona un programa que utiliza los botones para controlar el movimiento de un texto, como se muestra en la figura siguiente.
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); } }
El programa crea dos botones btLeft y btRight y cada botón contiene un texto y una imagen (líneas 18–19). Los botones se colocan en un HBox (línea 20) y el HBox se coloca en la parte inferior de un panel de borde (línea 25). Se crea un texto en la línea 14 y se coloca en el centro del panel de borde (línea 29). El controlador de acciones para btLeft mueve el texto hacia la izquierda (línea 31). El controlador de acciones para btRight mueve el texto hacia la derecha (línea 32).
El programa define deliberadamente un método protegido getPane() para devolver un panel (línea 16). Las subclases anularán este método en los próximos ejemplos para agregar más nodos en el panel. El texto se declara protegido para que las subclases puedan acceder a él (línea 14).
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3