Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.mycompany.mavenproject3;
- import java.util.Optional;
- import javafx.application.Application;
- import javafx.application.Platform;
- import javafx.event.ActionEvent;
- import javafx.geometry.Insets;
- import javafx.scene.Scene;
- import javafx.scene.control.Alert;
- import javafx.scene.control.Alert.AlertType;
- import javafx.scene.control.Button;
- import javafx.scene.control.ButtonType;
- import javafx.scene.layout.FlowPane;
- import javafx.scene.layout.Pane;
- import javafx.scene.layout.VBox;
- import javafx.stage.Stage;
- public class App extends Application {
- private static final int W_WIDTH = 1024;
- private static final int W_HEIGHT = 680;
- private static final int W_POS_X = 10;
- private static final int W_POS_Y = 10;
- // ссылка на главное окно !!!
- private Stage pStage;
- @Override
- public void start(Stage stage) {
- //
- System.out.println("App.start>>");
- this.pStage = stage;
- // создем сцену
- var scene = new Scene(createPane(), W_WIDTH, W_HEIGHT);
- stage.setTitle("JavaFX Controls!!!");
- stage.setScene(scene);
- // установка позиции окна (x,y) - левый верхний угол
- stage.setX(W_POS_X);
- stage.setY(W_POS_Y);
- // запретить менять размер!!!
- stage.setResizable(false);
- stage.show();
- }
- // определяем и настраиваем компонеты
- private Pane createPane() {
- // панель - вертик расположение элементов
- final VBox pane = new VBox();
- pane.setSpacing(10);
- pane.setPadding(new Insets(10, 10, 10, 10));
- // панель - потоковое расположение, вертик и горизонтальные отступы!!!
- final FlowPane buttonsPane = new FlowPane();
- buttonsPane.setVgap(0);
- buttonsPane.setHgap(10);
- // создаем элементы управления !!!
- Button btn1 = new Button("Обновить");
- btn1.setOnAction(this::onRefresh);
- Button btn2 = new Button("Очистить");
- btn2.setOnAction(this::onClear);
- Button btn3 = new Button("FullScreen MODE");
- btn3.setOnAction(this::onFullScreen);
- Button btn4 = new Button("Центрировать");
- btn4.setOnAction(this::onCenter);
- Button btn6 = new Button("Выход");
- btn6.setOnAction(this::onExit);
- buttonsPane.getChildren().addAll(btn1, btn2, btn3, btn4, btn6/*, btn5, btn6*/);
- // добавляем панель в pane
- pane.getChildren().addAll(buttonsPane);
- return pane;
- }
- //
- private void onExit(ActionEvent t) {
- //
- System.out.println("onExit>>");
- final Alert alert = new Alert(AlertType.CONFIRMATION);
- alert.setTitle("Выход");
- alert.setHeaderText("Завершить работу?");
- alert.setContentText(":)");
- // показывает диалог на экране и ждет действий пол-ля
- Optional<ButtonType> option = alert.showAndWait();
- if(option.get() == ButtonType.OK){
- // завершаем работу JavaFX APP
- Platform.exit();
- }
- }
- //
- private void onRefresh(ActionEvent t) {
- System.out.println("onRefresh!!!");
- }
- private void onClear(ActionEvent t) {
- }
- private void onFullScreen(ActionEvent t) {
- pStage.setMaximized(true);
- pStage.setFullScreen(true);
- }
- private void onCenter(ActionEvent t) {
- // centerOnScreen
- pStage.centerOnScreen();
- }
- public static void main(String[] args) {
- launch();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement