IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

probleme affichage frame:superpostion


Sujet :

avec Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Par défaut probleme affichage frame:superpostion
    salut j'ai un souci
    je souhaiterais en fait fermer une frame lorsque j'en ouvre une autre
    en fait j'ai des bouton qui me permettent d'ouvrir des fenêtre
    et chaque fois que j'ouvre une fenêtre la précédente reste afficher du coup ca se superpose
    comment je dois faire pour cacher une fenêtre lorsque j'affiche une nouvelle
    merci

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Salut,

    Il suffit de disposer d'une/de référence(s) de ton/tes ancienne(s) fenêtre(s) et d'appliquer la méthode setVisible(false) pour les cacher ou bien dispose() pour les détruires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    oldFrame.setVisible(false);
    newFrame.setVisible(true);
    Pour pouvoir mieux les gérer, tu peut créer un objet avec des méthodes static qui permettront d'ajouter/supprimer/détruire/cacher des frames à une List<JFrame>. Ainsi tu connaitra avec cet objet toutes les fenêtres de ton appli actuellement ouverte.

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Créé un attribut pour stocker ta fenêtre ouverte, et avant d'afficher la fenêtre demandée, tu fermes la précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private JFrame maFrame = null;
    public void actionPerformed(ActionEvent e) {
        fermerFenetreActuelle();
        maFrame = new maNewFrame(); 
        maFrame.setBounds( 0, 0, 200, 200 );  	        
        maFrame.setLayout(new FlowLayout()); 
        maFrame.setLocationRelativeTo(null);  
        maFrame.setTitle("page1");
        maFrame.setVisible(true);  
    }
    private void fermerFenetreActuelle() {
        if(maFrame != null) {
            maFrame.dispose();
        }
    }
    ps : Il faut faire le setVisible seulement une fois que le layout est choisi et que les composants sont ajoutés.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Par défaut
    Citation Envoyé par visiwi Voir le message
    Salut,

    Il suffit de disposer d'une/de référence(s) de ton/tes ancienne(s) fenêtre(s) et d'appliquer la méthode setVisible(false) pour les cacher ou bien dispose() pour les détruires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    oldFrame.setVisible(false);
    newFrame.setVisible(true);
    Pour pouvoir mieux les gérer, tu peut créer un objet avec des méthodes static qui permettront d'ajouter/supprimer/détruire/cacher des frames à une List<JFrame>. Ainsi tu connaitra avec cet objet toutes les fenêtres de ton appli actuellement ouverte.
    je suis débutant je maitrise pas trop
    excuse moi ,mais j'insère ca ou?
    dans chaque actionperformed?

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Tu insère cela aux endroit où tu créé une nouvelle fenêtre ce qui doit faire dans l'exemple que tu as donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    but.addActionListener(new ActionListener() {
            	@Override
            	public void actionPerformed(ActionEvent e) {
            	      JFrame maNewFrame = new JFrame(); 
            	        maNewFrame.setVisible(true);   
            	        maNewFrame.setBounds( 0, 0, 600, 200 ); 
            	        maNewFrame.setLayout(new FlowLayout()); 
            	        maNewFrame.setLocationRelativeTo(null); 
            	        maNewFrame.setTitle("KnowSoft Banking Management"); 		
            	        JLabel label = new JLabel("Welcome to KnowSoft Banking Account Management");
            	        maNewFrame.add(label);
    
            	        maOldFrame.setVisible(true);
            	        maNewFrame.setVisible(true);
            	}
            });
    et cela partout où tu créé une fenêtre. Evidemment il faudrait tester si maOldFrame n'est pas null, au cas où aucune ancienne fenêtre n'existe.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Par défaut
    Citation Envoyé par visiwi Voir le message
    Tu insère cela aux endroit où tu créé une nouvelle fenêtre ce qui doit faire dans l'exemple que tu as donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    but.addActionListener(new ActionListener() {
            	@Override
            	public void actionPerformed(ActionEvent e) {
            	      JFrame maNewFrame = new JFrame(); 
            	        maNewFrame.setVisible(true);   
            	        maNewFrame.setBounds( 0, 0, 600, 200 ); 
            	        maNewFrame.setLayout(new FlowLayout()); 
            	        maNewFrame.setLocationRelativeTo(null); 
            	        maNewFrame.setTitle("KnowSoft Banking Management"); 		
            	        JLabel label = new JLabel("Welcome to KnowSoft Banking Account Management");
            	        maNewFrame.add(label);
    
            	        maOldFrame.setVisible(true);
            	        maNewFrame.setVisible(true);
            	}
            });
    et cela partout où tu créé une fenêtre. Evidemment il faudrait tester si maOldFrame n'est pas null, au cas où aucune ancienne fenêtre n'existe.
    mais quand tu dis
    maOldFrame.setVisible(true);
    maNewFrame.setVisible(true);

    ca veux dire que mes deux fenêtre seront visible! true et true

  7. #7
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Je crois que tu as zappé mon message précédent :
    Citation Envoyé par CheryBen Voir le message
    Créé un attribut pour stocker ta fenêtre ouverte, et avant d'afficher la fenêtre demandée, tu fermes la précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private JFrame maFrame = null;
    public void actionPerformed(ActionEvent e) {
        fermerFenetreActuelle();
        maFrame = new maNewFrame(); 
        maFrame.setBounds( 0, 0, 200, 200 );  	        
        maFrame.setLayout(new FlowLayout()); 
        maFrame.setLocationRelativeTo(null);  
        maFrame.setTitle("page1");
        maFrame.setVisible(true);  
    }
    private void fermerFenetreActuelle() {
        if(maFrame != null) {
            maFrame.dispose();
        }
    }
    ps : Il faut faire le setVisible seulement une fois que le layout est choisi et que les composants sont ajoutés.

  8. #8
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Heu désolé : erreur de copier/coller idiote

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    but.addActionListener(new ActionListener() {
            	@Override
            	public void actionPerformed(ActionEvent e) {
            	      JFrame maNewFrame = new JFrame(); 
            	        maNewFrame.setVisible(true);   
            	        maNewFrame.setBounds( 0, 0, 600, 200 ); 
            	        maNewFrame.setLayout(new FlowLayout()); 
            	        maNewFrame.setLocationRelativeTo(null); 
            	        maNewFrame.setTitle("KnowSoft Banking Management"); 		
            	        JLabel label = new JLabel("Welcome to KnowSoft Banking Account Management");
            	        maNewFrame.add(label);
    
            	        maOldFrame.setVisible(false);
            	        maNewFrame.setVisible(true);
            	}
            });

  9. #9
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Mais la solution de CheryBen est surement plus intéressante, juste au passage !

Discussions similaires

  1. Probleme d'affichage Frame
    Par azerty_123 dans le forum NetBeans
    Réponses: 0
    Dernier message: 19/08/2009, 06h26
  2. Probleme affichage de mon site
    Par Braq dans le forum Webdesign & Ergonomie
    Réponses: 15
    Dernier message: 10/08/2005, 14h08
  3. problem affichage avec HTML::TableExtract
    Par rootdaoud dans le forum Web
    Réponses: 2
    Dernier message: 04/07/2005, 19h35
  4. Probleme affichage noir quand Build/Compile
    Par balabi dans le forum MFC
    Réponses: 3
    Dernier message: 01/06/2005, 16h12
  5. Probleme affichage dans tableau selon requête
    Par moulette85 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 01/03/2005, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo