[Note] Transition de scène avec JavaFX

Faisons une transition de scène avec JavaFX

C'est le 22e jour du calendrier de l'Avent CSG. C'est la troisième fois, maintenant que la fin est visible, écrivons-la encore cette fois

introduction

Pour ceux qui n'aiment pas JavaFX. .. .. JavaFX est l'interface graphique standard au lieu de SWING de JAVA8. Veuillez vous référer à https://qiita.com/Kei_22/items/f54e6ba7cd4bf71b14c8 car d'autres personnes ont écrit les détails tels que l'introduction dans le calendrier de l'Avent CSG.

Puis l'histoire principale

・ Tout d'abord, importez diverses choses

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;

・ Créer une scène


public class Main extends Application{
  //Déclaration de la scène
  public static Scene scene1 = null;
  public static Scene scene2 = null;

scene1 est la première scène et scene2 est la scène après le changement.

・ Au début

@Override
  public void start(Stage stage)throws Exception {

  stage.setTitle("HelloJavaFX");
  stage.setHeight(200);
  stage.setWidth(150);
  //Créer une scène
  initScene1(stage);
  initScene2(stage);

  stage.setScene(scene1);
  stage.show();
  }

Créez une interface graphique de scène avec initScene1 et initScene2. Et d'abord, définissez Scene1. Veuillez aimer l'écran de titre ici

・ À l'intérieur de initScene1

  public static void initScene1(Stage stage) {
    AnchorPane root = new AnchorPane();
    scene1 = new Scene(root);

    Button btn = new Button("Changement de scène");
    btn.setPrefWidth(100);
    btn.setPrefHeight(50);
    btn.setOnMouseClicked(event -> setScene(stage,scene2));


    root.getChildren().add(btn);
  }

Pour le moment, cette fois, je viens de placer le bouton car la scène change lorsque j'appuie sur le bouton. Appelez la méthode setScene avec setOnMouseClicked. La méthode setScene sera définie ultérieurement.

・ À l'intérieur de initScene2

  public static void initScene2(Stage stage) {
    AnchorPane root = new AnchorPane();
    scene2 = new Scene(root);

    Label lbl = new Label("Transition de scène terminée!");

    root.getChildren().add(lbl);
  }

Nous avons préparé une étiquette pour montrer que la scène a changé.

・ Dans setScene

public static void setScene(Stage stage,Scene changeScene) {
    stage.setScene(changeScene);
    stage.show();
  }
}

Définissez la scène envoyée comme argument et terminez! N'oubliez pas toute la parenthèse fermante

Ce que ça fait

Ce n'est pas mal car il est approprié d'introduire la pièce. .. .. Ceci est le premier écran ↓ スクリーンショット 2018-08-27 21.56.32.png

Et c'est l'écran après avoir appuyé sur le bouton ↓ スクリーンショット 2018-08-27 21.56.40.png

C'est la transition de scène. .. .. Eh bien ah ah! !! !! !! !! !! !! !! !! !! !! !! !! !! !!

Vue d'ensemble

Je vais vous montrer le script qui a été divisé en petits morceaux à la fois

Main.java


import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.application.Application;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.AnchorPane;

public class Main extends Application{
  //Déclaration de la scène
  public static Scene scene1 = null;
  public static Scene scene2 = null;

  @Override
  public void start(Stage stage)throws Exception {

  stage.setTitle("HelloJavaFX");
  stage.setHeight(200);
  stage.setWidth(150);
  //Créer une scène
  initScene1(stage);
  initScene2(stage);

  stage.setScene(scene1);
  stage.show();
  }

  public static void initScene1(Stage stage) {
    AnchorPane root = new AnchorPane();
    scene1 = new Scene(root);

    Button btn = new Button("Changement de scène");
    btn.setPrefWidth(100);
    btn.setPrefHeight(50);
    btn.setOnMouseClicked(event -> setScene(stage,scene2));


    root.getChildren().add(btn);
  }
  public static void initScene2(Stage stage) {
    AnchorPane root = new AnchorPane();
    scene2 = new Scene(root);

    Label lbl = new Label("Changement de scène réussi!");

    root.getChildren().add(lbl);
  }
  public static  void setScene(Stage stage,Scene changeScene) {
    stage.setScene(changeScene);
    stage.show();
  }
}

À la fin

*** Parce qu'il y a peu d'informations sur JavaFX! !! !! Toutes les personnes! !! !! Écrivons! !! !! !! !! !! !! !! !! !! Faisons le! !! !! !! !! !! !! !! !! *** *** Ceci est un mémorandum de transition de scène.

Recommended Posts

[Note] Transition de scène avec JavaFX
HelloFX avec JavaFX
Transition d'écran JavaFX8
Joyeux Noël avec JavaFX !!
Exemple pour créer une application GUI avec JavaFX + IntelliJ + Scene Builder
Étudier Java avec Progate Note 1
Transition d'écran avec swing, java
Caractères de sortie comme une conversation avec JavaFX
Créer un outil de diaporama avec JavaFX
[Java] Points à noter avec Arrays.asList ()
Bonjour tout le monde avec Kotlin et JavaFX
Faites glisser et déposez des fichiers avec JavaFX