Advertisement
sergAccount

Untitled

Feb 22nd, 2021
575
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.64 KB | None | 0 0
  1. package com.spec.appfx1;
  2.  
  3. import javafx.application.Application;
  4. import javafx.application.Platform;
  5. import javafx.event.ActionEvent;
  6. import javafx.geometry.Insets;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.Button;
  9. import javafx.scene.control.Label;
  10. import javafx.scene.layout.FlowPane;
  11. import javafx.scene.layout.Pane;
  12. import javafx.stage.Stage;
  13.  
  14.  
  15. /**
  16.  * JavaFX App
  17.  */
  18. public class App extends Application {
  19.    
  20.     private static final int W_WIDTH = 1024;
  21.     private static final int W_HEIGHT = 680;
  22.    
  23.     private static final int W_POS_X = 10;
  24.     private static final int W_POS_Y = 10;
  25.    
  26.     private Stage mainWin;
  27.  
  28.     @Override
  29.     public void start(Stage stage) {
  30. //        var javaVersion = SystemInfo.javaVersion();
  31. //        var javafxVersion = SystemInfo.javafxVersion();
  32. //        Label label = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
  33. //        Scene scene = new Scene(new StackPane(label), 640, 480);  
  34.         //
  35.         this.mainWin = stage;
  36.         // создаем сцену - указываем панель и размеры сцены
  37.         Scene scene = new Scene(createPane(), W_WIDTH, W_HEIGHT);          
  38.         // устанавливаем сцену
  39.         stage.setScene(scene);
  40.         // заголовок окна
  41.         stage.setTitle("JavaFX SAMPLE1");
  42.         // установка позиции окна (x,y) - левый верхний угол
  43.         stage.setX(W_POS_X);
  44.         stage.setY(W_POS_Y);
  45.         // запретить менять размер!!!
  46.         stage.setResizable(false);        
  47.         // показываем окно на экране
  48.         stage.show();
  49.     }
  50.     // создаем панель и наполняем элементами управления (компонентами UI)
  51.     private Pane createPane() {
  52.         //
  53.         FlowPane p = new FlowPane();        
  54.         // расстояние между элементами управления внутри панели
  55.         p.setHgap(10);
  56.         // отступы
  57.         p.setPadding(new Insets(50, 50, 50, 50));        
  58.         Label label1 = new Label("Hello, JavaFX! ");
  59.         Button b1 = new Button("Ok");
  60.         // подключаем обработчик  событий
  61.         b1.setOnAction(this::onOkButton); // ссылка на метод ::
  62.         // 1) Exit
  63.         Button exitButton = new Button("Exit");
  64.         exitButton.setOnAction(this::onExitButton); // ссылка на метод ::
  65.         // 2) FullScreen
  66.         Button fullScrButton = new Button("FullScreen!");
  67.         fullScrButton.setOnAction(this::onFullScrButton); // ссылка на метод ::
  68.         // добавляем элементы управления в панель p
  69.         p.getChildren().addAll(label1, b1, exitButton, fullScrButton);        
  70.         return p;
  71.     }
  72.     // onOkButton - вызывается при нажатии Ок
  73.     // ActionEvent - событие
  74.     private void onOkButton(ActionEvent t) {
  75.         // получаем источник собтия
  76.         System.out.println("t.getSource().getClass()=" + t.getSource().getClass());        
  77.     }
  78.     //
  79.     public static void main(String[] args) {
  80.         launch();
  81.     }
  82.     //
  83.     private void onExitButton(ActionEvent t) {
  84.         // используем класс Platform библ-ки JavaFx
  85.         Platform.exit();
  86.     }
  87.     private void onFullScrButton(ActionEvent t) {
  88.         System.out.println("onFullScrButton!!!");
  89.         mainWin.setMaximized(true);
  90.         mainWin.setFullScreen(true);
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement