Кнопка — это элемент управления, который запускает событие действия при нажатии. JavaFX предоставляет обычные кнопки, кнопки-переключатели, кнопки-флажки и переключатели. Общие функции этих кнопок определены в классах ButtonBase и Labeled, как показано на рисунке ниже.
Класс Labeled определяет общие свойства меток и кнопок. Кнопка аналогична метке, за исключением того, что у кнопки есть свойство onAction, определенное в классе ButtonBase, которое устанавливает обработчик для обработки действия кнопки.
Приведенный ниже код представляет программу, которая использует кнопки для управления перемещением текста, как показано на рисунке ниже.
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); } }
Программа создает две кнопки btLeft и btRight, каждая из которых содержит текст и изображение (строки 18–19). Кнопки размещаются в HBox (строка 20), а HBox размещается в нижней части панели границ (строка 25). Текст создается в строке 14 и размещается в центре панели границ (строка 29). Обработчик действия для btLeft перемещает текст влево (строка 31). Обработчик действия для btRight перемещает текст вправо (строка 32).
Программа намеренно определяет защищенный метод getPane() для возврата панели (строка 16). Этот метод будет переопределен подклассами в следующих примерах, чтобы добавить больше узлов на панель. Текст объявлен защищенным, чтобы к нему могли получить доступ подклассы (строка 14).
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3