Dans cette section, vous allez apprendre à créer un projet composé de deux jFrame. La première s’affiche au lancement de l’application. La deuxième lorsque l’utilisateur clique sur le bouton A propos.
Commencez par définir un nouveau projet de type Java Application sans créer la classe main. Ajoutez deux jFrame Form à ce projet et incluez-les dans le même package.
Ajoutez les boutons A propos et Quitter dans la jFrame principale. Affichez le titre « Multi fenêtres » dans la barre de titre de la jFrame principale. Pour cela, vous pouvez passer par la propriété title du jFrame ou utiliser le code suivant :
this.setTitle("Multi fenêtres");
En mode Design, double-cliquez sur le premier bouton et complétez la méthode jButton1ActionPerformed() comme ceci :
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
new ficheAPropos().setVisible(true);
}
Ce code crée une instance de la classe ficheAPropos, ce qui provoque l’ouverture de la fiche secondaire A propos (cette instruction suppose que la jFrame secondaire a été appelée ficheAPropos lors de sa création).
Double-cliquez sur le bouton Quitter et complétez la méthode jButton2ActionPerformed() comme ceci :
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0); // Fermeture de l'appli quand on clique sur la case Fermer
}
Cette instruction se contente de mettre fin à l’application.
Passons maintenant à la jFrame ficheAPropos. Affichez le texte A propos dans la barre de titre de la jFrame en affectant le texte « A propos » à la propriété title de la jFrame. Vous auriez également pu insérer l’instruction suivante dans le constructeur de la classe ficheAPropos pour parvenir au même résultat :
this.setTitle("A propos");
Placez un jLabel dans cette jFrame et insérez-y du texte pour obtenir le résultat suivant :
Vous vous demandez certainement comment le contenu du label a pu s’afficher sur deux lignes et comment « A propos » peut apparaître en gras. Eh bien, ces deux questions ont une même réponse : en insérant du code HTML dans la propriété text du jLabel. Voici le code utilisé :
<html>Cette boîte de dialogue s'affiche quand l'utilisateur<br>clique sur le bouton <b>A propos</b>.</html>
Pour éviter que la fermeture de la jFrame secondaire ne mette fin à l’application, le plus simple consiste à faire appel à la méthode setDefaultCloseOperation(), en lui passant la constante JFrame.HIDE_ON_CLOSE :
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
Placez cette instruction dans le constructeur de la classe ficheAPropos :
public ficheAPropos() {
initComponents();
this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}