Tutoriel JavaFX: Hello World

Traduction du tutoriel JavaFX: article Hello World de Vojtech Ruzicka.

Comment créer votre première application JavaFX.

Ceci est le deuxième article de la série JavaFX. Vous pouvez lire le premier article sur la configuration de votre environnement de développement JavaFx.

Tous les articles de la série JavaFX:

  1. Tutoriel JavaFX: Prise en main
  2. Tutoriel JavaFX: Bonjour tout le monde!
  3. Tutoriel JavaFX: FXML et SceneBuilder
  4. Tutoriel JavaFX: dispositions de base
  5. Tutoriel JavaFX: dispositions avancées
  6. Tutoriel JavaFX: style CSS
  7. JavaFX Weaver: intégration des applications JavaFX et Spring Boot

Structure d'application


Chaque application se compose d'une hiérarchie de plusieurs composants principaux: étapes (fenêtres), (scènes) et nœuds (nœuds). Regardons chacun d'eux.

Stage


La scène est essentiellement une fenêtre. Votre application peut avoir plusieurs composants d'étape, mais au moins un doit être requis.

Scène


La scène affiche le contenu de la scène (scène). Chaque composant de scène peut contenir plusieurs composants de scène pouvant être commutés. Imaginez la scène théâtrale, qui est remplacée par plusieurs scènes lors de la représentation.

Noeud


Chaque composant d'étape peut contenir différents composants appelés nœuds. Les nœuds peuvent être des contrôles, tels que des boutons ou des étiquettes, ou même des dispositions, qui peuvent contenir plusieurs composants imbriqués. Chaque scène peut avoir un sous-nœud, mais il peut s'agir d'une mise en page pouvant contenir plusieurs composants. L'imbrication peut être à plusieurs niveaux - les dispositions peuvent contenir d'autres dispositions et composants communs.

Résumé


Chaque application peut avoir plusieurs fenêtres (Stage). Chaque composant Stage peut commuter plusieurs scènes Scene. Les scènes contiennent des nœuds - des dispositions et des composants communs.

Cette hiérarchie peut être visualisée comme suit:



Voyons maintenant un exemple spécifique - une vraie application.



Application de classe


Il est temps de commencer la programmation. Si vous avez suivi l' article précédent , vous disposez de toutes les dépendances nécessaires.

Chaque application JavaFX doit avoir une classe principale qui étend la classe:

javafx.application.Application 

De plus, vous devez remplacer la méthode abstraite de la classe Application:

 public void start(Stage primaryStage) throws Exception 

Cass main ressemble à ceci:

 import javafx.application.Application; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception { // TODO implement me! } } 

Méthode principale


Pour exécuter une application JavaFx, la méthode main () n'est pas nécessaire. Vous pouvez empaqueter l'exécutable jar à l'aide de l' outil JavaFX Packager . Cependant, il est beaucoup plus pratique d'avoir une méthode principale.

Dans le même temps, l'application est non seulement plus facile à exécuter, mais vous pouvez également lui transférer des paramètres de ligne de commande comme d'habitude.

À l'intérieur de la méthode main (), l'application peut être lancée à l'aide de la méthode:
 Application.launch() 


Il est facile de voir qu'il s'agit d'une méthode statique dans la classe Application. Nous n'avons pas spécifié la classe principale, mais JavaFX peut le déterminer automatiquement en fonction de la classe qui appelle cette méthode.

Configuration de la scène


Nous savons maintenant comment démarrer notre application en utilisant la méthode main (). Cependant, rien ne se passera si nous faisons cela. Nous avons besoin d'une fenêtre que nous voulons montrer. La fenêtre s'appelle la scène, tu te souviens? En fait, nous avons déjà passé l'étape primaire à la méthode start comme paramètre d'entrée:

 public void start (Stage primaryStage) 

Nous pouvons utiliser cette composante de la scène. Le seul problème est qu'il est masqué par défaut. Heureusement, nous pouvons facilement le montrer en utilisant la méthode primaryStage.show ():

 @Override public void start(Stage primaryStage) throws Exception { primaryStage.show(); } 

Maintenant, lorsque vous démarrez l'application, vous devriez voir la fenêtre suivante:



Pas très impressionnant, non? Tout d'abord, ajoutons une jolie signature à notre fenêtre.

 primaryStage.setTitle("Hello world Application"); 

Pour rendre la fenêtre encore plus belle, ajoutons une belle icône au panneau supérieur de la fenêtre:

 InputStream iconStream = getClass().getResourceAsStream("/icon.png"); Image image = new Image(iconStream); primaryStage.getIcons().add(image); 

Vous pouvez ajouter plusieurs icônes représentant l'application. Plus précisément, la même icône de tailles différentes. Cela vous permettra d'utiliser une icône d'une taille appropriée en fonction du contexte de l'application.

Vous pouvez maintenant configurer les propriétés et le comportement de l'objet Stage, par exemple:

  • Définir la position à l'aide de setX () et setY ()
  • Définissez la taille initiale à l'aide de setWidth () et setHeight ()
  • Limitez les tailles de fenêtre maximales avec setMaxHeight () et setMaxWidth () ou désactivez le redimensionnement avec setResizable (false)
  • Définissez le mode fenêtre toujours au-dessus en utilisant setAlwaysOnTop ()
  • Définir le mode plein écran à l'aide de setFullScreen ()
  • Et bien plus

Nous avons maintenant une fenêtre avec un nom aussi fantastique, mais elle est toujours vide. Vous savez déjà que vous ne pouvez pas ajouter de composants directement à la scène (fenêtre). Vous avez besoin d'une scène.

Cependant, pour démarrer le concepteur de scène, vous devez spécifier un nœud enfant. Créons d'abord une étiquette simple. Ensuite, nous créons une scène avec cette étiquette en tant que nœud enfant.

 Label helloWorldLabel = new Label("Hello world!"); Scene primaryScene = new Scene(helloWorldLabel); 

Vous avez remarqué que Scene n'autorise qu'un seul composant enfant. Et si nous en avions besoin de plus? Vous devez utiliser une disposition, qui est un composant pouvant inclure plusieurs enfants et les placer sur l'écran, selon la disposition utilisée. Nous couvrirons les dispositions plus tard dans cette série d'articles.

Pour rendre l'application un peu plus attrayante visuellement, plaçons une étiquette au centre de l'écran.

 helloWorldLabel.setAlignment(Pos.CENTER); 

Enfin, nous devons installer Scene for Stage, que nous avons déjà:

 @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("Hello world Application"); primaryStage.setWidth(300); primaryStage.setHeight(200); InputStream iconStream = getClass().getResourceAsStream("/icon.png"); Image image = new Image(iconStream); primaryStage.getIcons().add(image); Label helloWorldLabel = new Label("Hello world!"); helloWorldLabel.setAlignment(Pos.CENTER); Scene primaryScene = new Scene(helloWorldLabel); primaryStage.setScene(primaryScene); primaryStage.show(); } 

Maintenant, notre fenêtre contient une scène avec le composant label:



Et ensuite


Dans la prochaine étape de cette série, nous verrons comment implémenter notre interface graphique en XML, pas en Java.

Source: https://habr.com/ru/post/fr474498/


All Articles