Advertisement
sergAccount

Untitled

Apr 11th, 2021
717
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.68 KB | None | 0 0
  1. package com.mycompany.mavenproject3;
  2.  
  3. import java.util.Optional;
  4. import javafx.application.Application;
  5. import javafx.application.Platform;
  6. import javafx.event.ActionEvent;
  7. import javafx.geometry.Insets;
  8. import javafx.scene.Scene;
  9. import javafx.scene.control.Alert;
  10. import javafx.scene.control.Alert.AlertType;
  11. import javafx.scene.control.Button;
  12. import javafx.scene.control.ButtonType;
  13. import javafx.scene.control.Label;
  14. import javafx.scene.layout.FlowPane;
  15. import javafx.scene.layout.Pane;
  16. import javafx.scene.layout.VBox;
  17. import javafx.stage.Stage;
  18.  
  19. public class App extends Application {
  20.  
  21.     private static final int W_WIDTH = 1024;
  22.     private static final int W_HEIGHT = 680;
  23.     private static final int W_POS_X = 10;
  24.     private static final int W_POS_Y = 10;
  25.     // ссылка на главное окно !!!
  26.     private Stage pStage;
  27.  
  28.     @Override
  29.     public void start(Stage stage) {
  30.         //
  31.         System.out.println("App.start>>");
  32.         this.pStage = stage;
  33.         // создем сцену        
  34.         var scene = new Scene(createPane(), W_WIDTH, W_HEIGHT);
  35.         stage.setTitle("JavaFX Controls!!!");
  36.         stage.setScene(scene);
  37.         // установка позиции окна (x,y) - левый верхний угол
  38.         stage.setX(W_POS_X);
  39.         stage.setY(W_POS_Y);
  40.         // запретить менять размер!!!
  41.         stage.setResizable(false);
  42.  
  43.         stage.show();
  44.     }
  45.  
  46.     // определяем и настраиваем компонеты
  47.     private Pane createPane() {
  48.         // панель - вертик расположение элементов
  49.         final VBox pane = new VBox();
  50.         pane.setSpacing(10);
  51.         pane.setPadding(new Insets(10, 10, 10, 10));
  52.         // панель - потоковое расположение, вертик и горизонтальные отступы!!!
  53.         final FlowPane buttonsPane = new FlowPane();
  54.         buttonsPane.setVgap(0);
  55.         buttonsPane.setHgap(10);
  56.         // создаем элементы управления !!!
  57.         Button btn1 = new Button("Обновить");
  58.         btn1.setOnAction(this::onRefresh);
  59.         Button btn2 = new Button("Очистить");
  60.         btn2.setOnAction(this::onClear);
  61.         Button btn3 = new Button("FullScreen MODE");
  62.         btn3.setOnAction(this::onFullScreen);
  63.         Button btn4 = new Button("Центрировать");
  64.         btn4.setOnAction(this::onCenter);
  65.         Button btn6 = new Button("Выход");
  66.         btn6.setOnAction(this::onExit);
  67.        
  68.         Button btn5 = new Button("Окно");
  69.         btn5.setOnAction(this::onOpenWindow);
  70.  
  71.         buttonsPane.getChildren().addAll(btn1, btn2, btn3, btn4, btn5, btn6);
  72.         // добавляем панель в pane
  73.         pane.getChildren().addAll(buttonsPane);
  74.         return pane;
  75.     }
  76.     //
  77.     private void onOpenWindow(ActionEvent t) {        
  78.         final Label secondLabel = new Label("I'm a Label on new Window!");
  79.         final VBox pane = new VBox();
  80.         pane.getChildren().add(secondLabel);
  81.         // создаем сцену
  82.         Scene secondScene = new Scene(pane, 230, 100);
  83.         // New window (Stage)
  84.         Stage newWindow = new Stage();
  85.         newWindow.setTitle("Second Stage");
  86.         newWindow.setScene(secondScene);
  87.         // Set position of second window, related to primary window.
  88.         newWindow.setX(pStage.getX() + 200);
  89.         newWindow.setY(pStage.getY() + 100);
  90.         newWindow.show();
  91.        
  92.                
  93.     }
  94.    
  95.      //
  96.     private void onExit(ActionEvent t) {
  97.         //
  98.         System.out.println("onExit>>");
  99.         final Alert alert = new Alert(AlertType.CONFIRMATION);
  100.         alert.setTitle("Выход");
  101.         alert.setHeaderText("Завершить работу?");
  102.         alert.setContentText(":)");
  103.         // показывает диалог на экране и ждет действий пол-ля
  104.         Optional<ButtonType> option = alert.showAndWait();
  105.         if(option.get() == ButtonType.OK){
  106.             // завершаем работу JavaFX APP
  107.             Platform.exit();
  108.         }        
  109.     }
  110.  
  111.     //
  112.     private void onRefresh(ActionEvent t) {
  113.         System.out.println("onRefresh!!!");
  114.     }
  115.  
  116.     private void onClear(ActionEvent t) {
  117.     }
  118.  
  119.     private void onFullScreen(ActionEvent t) {
  120.         pStage.setMaximized(true);
  121.         pStage.setFullScreen(true);
  122.     }
  123.  
  124.     private void onCenter(ActionEvent t) {
  125.         // centerOnScreen
  126.         pStage.centerOnScreen();
  127.     }
  128.  
  129.  
  130.     public static void main(String[] args) {
  131.         launch();
  132.     }
  133.  
  134.    
  135.  
  136.  
  137. }
  138.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement