«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Кнопка

Кнопка

Опубликовано 31 июля 2024 г.
Просматривать:611

Кнопка  — это элемент управления, который запускает событие действия при нажатии. JavaFX предоставляет обычные кнопки, кнопки-переключатели, кнопки-флажки и переключатели. Общие функции этих кнопок определены в классах ButtonBase и Labeled, как показано на рисунке ниже.

Image description

Класс 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);
    }
}

Image description

Программа создает две кнопки btLeft и btRight, каждая из которых содержит текст и изображение (строки 18–19). Кнопки размещаются в HBox (строка 20), а HBox размещается в нижней части панели границ (строка 25). Текст создается в строке 14 и размещается в центре панели границ (строка 29). Обработчик действия для btLeft перемещает текст влево (строка 31). Обработчик действия для btRight перемещает текст вправо (строка 32).

Программа намеренно определяет защищенный метод getPane() для возврата панели (строка 16). Этот метод будет переопределен подклассами в следующих примерах, чтобы добавить больше узлов на панель. Текст объявлен защищенным, чтобы к нему могли получить доступ подклассы (строка 14).

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/paulike/button-4khg?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3