Advertisement
sergAccount

Untitled

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