Fermer un formulaire en JAVA

Résolu
johann36 Messages postés 130 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017 - 25 avril 2010 à 15:16
 HFMLCode - 6 mars 2017 à 14:33
Bonjour à tous,

Bon alors là, je crois que je détiens la palme d'or, je ne sais pas comment on fait pour fermer un formulaire.

Je m'explique, je viens de créer un formulaire où l'utilisateur vient s'identifier, une fois l'identification réussi, je veux fermer le formulaire de l'identification puis ouvrir le formulaire principal.

Mais voilà, je n'arrive pas à faire des choses simple.

Merci d'avance à tous pour votre aide.

12 réponses

johann36 Messages postés 130 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017
1 mai 2010 à 17:19
Merci WikiDARK,

Toujours fidèle à ton image, c'est SUPER !!! Cela fonctionne parfaitement. A dire vrai je n'appelai pas la fonction AfficheFenetre car je l'ouvrai autrement. Ce qui m'intéressé c'était de la masquer.

Problème à merveille.

Merci DARK, je clos donc le sujet.

Passe un bon WE et @+
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 avril 2010 à 18:57
Salut,

Pour afficher ton formulaire, tu as fait : setVisible(true), et bien là il suffit de faire l'inverse : setVisible(false).
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
johann36 Messages postés 130 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017
26 avril 2010 à 20:10
Salut DARK,

Je sais pas pourquoi mais au moment ou j'ai posé cette question je me suis dit la première personne qui va répondre ça va être toi et voilà c'est fait.

Pour revenir à ma question, j'ai essayé de faire ce que tu m'as dit mais cela ne fonctionne pas.

Le formulaire en lui même je n'ai pas accès à cette fonction il faut que je déclare une nouvelle de mon formulaire et là j'ai la fonction mais sens succès.

Pourrais-tu me donner plus de détails dans la démarche à suivre ?

Je t'en remercie d'avance.

@+
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 avril 2010 à 20:44
Salut,

Et oui, DKS tire plus vite que son ombre

Comment tu crées ton JFrame ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
johann36 Messages postés 130 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017
26 avril 2010 à 21:19
Salut DARK,

Je fais
 
public class NomFrame(){

    public static void BTN_CNX{
       // Pour masquer la fenêtre, vu précédemment avec WikiDARK
       // Mais ça ne marche pas car je n'ai pas accès à la fonction
       NomFrame.setVisible(false);

       // Code jojo mais ça ne marche pas non plus
       NomFrame TestFrame = new NomFrame;
       TestFrame.setVisible(false);
    }

    public static void main(){
       .... code de démarrage
    }
}


Bon ben voilà comment je procède

@+
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 avril 2010 à 21:56
Salut,

si ta fonction est directement dans ton JFrame, tu peux directement l'appeler avec this :

public class NomFrame(){

    public static void BTN_CNX{
       // Pour masquer la fenêtre, vu précédemment avec DwikiSidious
       // Mais ça ne marche pas car je n'ai pas accès à la fonction
       this.setVisible(false);
    }

    public static void main(){
       .... code de démarrage
    }
}


Par contre, pourquoi ta fonction BTN_CNX et static ??? Tu as un intérêt particulier de la même static ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
johann36 Messages postés 130 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017
27 avril 2010 à 07:24
Salut DARK,

Bon j'ai essayé ce que tu m'as dit mais ça ne fonctionne toujours pas, vu que 70% des problèmes informatique sont situés entre la chaise et l'ordinateur, je vais donc supposer que c'est moi le fautiste.

Donc pour faire plus simple je vais mettre le code source complet (enfin ce que je pense être le plus important), te voici donc le copié/collé :
	private void BTN_CNXActionPerformed(java.awt.event.ActionEvent evt) {                                        
        /**ON VERIFIE L'ID ET LE MOT DE PASSE*/
if (TXT_ID.getText().equals("toto") && TXT_PW.getText().equals("1234")){
                        /**MASQUE LA FENETRE ACTIVE*/
this.setVisible(false);
            Fen_Chat OuvFenChat = new Fen_Chat();
            /**ON RECUPERE LA RESOLUTION DE L'ECRAN AFIN DE CENTRER LA FENETRE*/
            Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
            /**LA FENETRE SE POSITIONNE AU CENTRE DE L'ECRAN*/
            OuvFenChat.setLocation((screen.width - OuvFenChat.getSize().width)/2,(screen.height - OuvFenChat.getSize().height)/2);
            OuvFenChat.setVisible(true);            
        }
        else{
            JOptionPane.showMessageDialog(null,"Connexion impossible !\nL'identifiant ou le mot de passe est incorrect.");
        }
    }                                       

    public static void CenterWindow(){
        /**CREATION DE L'INSTANCE FEN_ID*/
        Fen_ID fen = new Fen_ID();

        /**ON RECUPERE LA RESOLUTION DE L'ECRAN AFIN DE CENTRER LA FENETRE*/
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

        /**LA FENETRE SE POSITIONNE AU CENTRE DE L'ECRAN*/
        fen.setLocation((screen.width - fen.getSize().width)/2,(screen.height - fen.getSize().height)/2);

        /**AFFICHAGE DE LA FENETRE*/
        fen.setVisible(true);
    }

    /** DEMARRAGE */
    public static void main(String args[]) {
         /** GESTION DE LA FENETRE */
        CenterWindow();
    }


Dis-moi si tu as besoin d'autres renseignement car là ! Franchement, pour juste masquer un formulaire c'est la galère. j'hallucine !!!!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 avril 2010 à 07:59
Salut,

Ok, donc si j'ai bien compris, tu veux masquer la frame Fen_ID c'est cà ?

Il faut que tu stocke l'instance de la fenêtre à masquer au niveau de ta classe et non dans une méthode, et appeler le setVisible sur cette instance :
public class TaClasse {
  private JFrame taFenetre; // ici tu stocke ton instance de fenêtre.

  public void afficherFenetre() { // peux aussi être un listener
    // ... code métier
    taFenetre = new JFrame();
    taFenetre.setVisible(true); // tu rends ta fenêtre visible
    // ... reste du code métier
  }

  public void fermerFenetre() { // peux aussi être un listener
    // ... code métier
    taFenetre.setVisible(false); // tu rends ta fenêtre invisible
    // ... reste du code métier
  }
}

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
johann36 Messages postés 130 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017
1 mai 2010 à 16:30
Salut DARK,

Désolé de répondre aussi tardivement mais je n'ai pas été présent chez de la semaine. Alors je viens d'essayer de faire ce que tu m'as et tu comprends que si je poste à nouveau un message c'est que je n'y suis pas arrivé.

En fait je ne comprend pas très bien ce que tu veux que je fasse, je sais pour les autres qui vont lire ce sujet sa paraître simple mais moi pour moi désolé ... :-(

En gros ce que j'ai fait c'est de copier ton code et de le coller dans ma classe mais lorsque je fais appel à la fonction fermerFenetre() j'ai les messages d'erreurs suivant :

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at chat_rsx112.Fen_ID.fermerFenetre(Fen_ID.java:18)
at chat_rsx112.Fen_ID.BTN_CNXActionPerformed(Fen_ID.java:106)
at chat_rsx112.Fen_ID.access$0(Fen_ID.java:103)
at chat_rsx112.Fen_ID$1.actionPerformed(Fen_ID.java:46)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


Je te remercie d'avance pour toutes les aides que tu m'apportes.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 mai 2010 à 16:41
Salut,

Est-ce que tu as bien appelé la fonction afficherFenetre avant l'appel à fermerFenetre ?

Il faut bien entendu que la variable taFenetre pointe vers ta JFrame au moment de l'appel de fermerFenetre, sinon forcément, il te lance un NullPointerException.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
issagen Messages postés 3 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 3 août 2010
7 juil. 2010 à 02:56
merci les amis
0
Utilse simplement la méthode
dispose();
0
Rejoignez-nous