| ||||||||
Petit astucien | Bonsoir, voici ce que je veux arriver à réaliser et que je n'arrive pas. Dans mon application, je dispose d'un formulaire qui doit contenir une quantité importante de champs à renseigner, j'ai donc décidé de créer deux formulaires.(si vous voulez une principale et une secondaire). Sur chacun d'eux je dispose d'un bouton pour naviguer entre eux. Par exemple sur le formulaire principal, le bouton (suite) permettra d'aller sur le formulaire secondaire, et le bouton (Précédent) du formulaire secondaire pour revenir vers le formulaire principal. Tel que je l'ai fait, lorsque je clique sur le bouton (suite) une instance du formulaire secondaire se crée, puis lorsque je clique sur le bouton (précédent) une autre instance du formulaire principal se crée. Au finish avec 10 clicks sur chacun de ces boutons, j'ai 10 instances de formulaire, ce qui n'est pas mon objectif. Moi j'aimerais, selon que je click sur le bouton (suite) ou (précédent) appelé respectivement le même formulaire secondaire ou le même formulaire principal et pas une instance de ceux-ci. J'espère m'être fait comprendre ? Voici mes codes: Code du formulaire principal (FormANaiss) public class FormANaiss extends javax.swing.JFrame { private void CmdSuiteActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ActeNaissSuite suite= new ActeNaissSuite(); // création de l’instance du formulaire secondaire suite.setVisible(true); }} Code du formulaire secondaire (FormANaiss) public class ActeNaissSuite extends javax.swing.JFrame { private void CmdPcdtActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: FormANaiss frmANaiss= new FormANaiss();//création de l’instance du formulaire principal frmANaiss.setVisible(true); } } Aussi je voudrais pouvoir arriver à conserver les données dans les champs lorsque j’appelle chacun de ces formulaires. Merci encore | |||||||
Publicité | ||||||||
Petit astucien | Oui c'est bien ça.avez vous une petite idée sur le sujet?
| |||||||
Petit astucien | Bonjour,
Je ne connais pas (encore) Java, mais les principes sont les mêmes qu'en C++ ou en C#. C'est logique que tu ais 10 instances de chaque classe si tu cliques 10 fois sur le bouton "Suivant" et 10 fois sur le bouton "Précédent", puisque tu les crées lorsque tu traites les clics. Crées 1 seule instance de chaque classe (1 de FormANaiss et 1 de ActeNaissSuite) en même temps, là où tu ne crées que l'instance initiale de FormANaiss pour l'instant.
Quand tu fais (pour afficher le formulaire principal): FormANaiss form1 = new FormANaiss();
Fais plutôt: FormANaiss form1 = new FormANaiss(); ActeNaissSuite form2 = new ActeNaissSuite(); form1.oActeNaissSuite = form2; form2.oFormANaiss = form1; form2.setVisible(false); //Si tu le peux, mets cette propriété à false dans ton éditeur de formulaires et supprime cette ligne, ainsi, ton formulaire ne s'affichera pas pour disparaître tout de suite après (je sais que je peux le faire sous Visual Studio, çà modifie directement le formulaire dans les ressources, mais je ne sais pas en Java).
Dans ta déclaration de la classe FormANaiss, ajoute une propriété publique de type ActeNaissSuite nommée oActeNaissSuite, et dans ta déclaration de la classe ActeNaissSuite, ajoute une propriété publique de type FormANaiss nommée oFormANaiss.
Ensuite, dans ta méthode CmdSuiteActionPerformed, supprime la ligne: ActeNaissSuite suite= new ActeNaissSuite(); // création de l’instance du formulaire secondaire et remplace: suite.setVisible(true); par: oActeNaissSuite.setVisible(true);
Dans ta méthode CmdPcdtActionPerformed, supprime: FormANaiss frmANaiss= new FormANaiss();//création de l’instance du formulaire principal
et remplace: frmANaiss.setVisible(true); par: oFormANaiss.setVisible(true);
Comme çà, çà devrait aller mieux. | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|