Advertisement
sergAccount

Untitled

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