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

Agents de placement/Fenêtres Java Discussion :

Problème avec ma classe fenetre, elles se ferment toutes en même temps.


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 23
    Points
    23
    Par défaut Problème avec ma classe fenetre, elles se ferment toutes en même temps.
    Salut à tous,

    Je veux créer une classe appeler fenêtre car je voudrais ne pas à avoir à récrire le code a chaque fois que je veux une fenêtre. Je veux simplement avoir à passer des argument en paramètre pour confirmer mes chois pour la fenêtre à créer. Voici mon code actuel:
    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
    import javax.swing.JFrame;
     
    public class Fenetre extends JFrame {
     
    	public Fenetre(String nom, int largeur, int hauteur, boolean visible){
    		this.setTitle(nom);
    		this.setSize(largeur, hauteur);
    		this.setLocationRelativeTo(null);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(visible);
    		Panel panel = new Panel();
    		this.setContentPane(panel);
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import java.awt.Color;
     
    import javax.swing.JPanel;
     
     
    public class Panel extends JPanel {
     
    	public Panel(){
    		this.setBackground(Color.white);
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class MainTest {
     
    	public static void main(String[] args) {
     
    		Fenetre f1 = new Fenetre("fenêtre 1",500,500,true);
    		Fenetre f2 = new Fenetre("fenêtre 2",500,500,true);
     
    	}
     
    }
    Mon problème actuellement c'est que quand je cré deux fenêtres et que je veux en fermer une l'autre ferme en même temps. Si quelqu'un pourrais me guider vers une explication, je pourrais comprendre mon erreur.

  2. #2
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Le probleme est la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Ca veut dire que lorsque la fenetre est fermée par la croix rouge, tu veux fermer ton application.

    A la place, il faut plutot faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    addActionListener(new ActionListener()
          {
             @Override
             public void actionPerformed(ActionEvent e)
             {
                dispose();
             }
          });
    qui ne fermera que la fenetre elle meme lorsque tu cliques sur la croix.

    Note qu'avec ce code, ton programme restera lancé à la fermeture de tes 2 fenetres. Il faudrait donc penser à l'arreter à un endroit ou c'est pertinent (par exemple sur une fenetre principale, ca depend de ton projet).

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    JFrame.DISPOSE_ON_CLOSE au lieu de JFrame.EXIT_ON_CLOSE fait que le clic sur la croix ne ferme que la fenêtre concernée.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Problème avec une classe... "without object"
    Par z980x dans le forum C++
    Réponses: 8
    Dernier message: 27/04/2006, 17h00
  2. [PHPMailer] problème avec la classe phpmailer
    Par sansouna24 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/04/2006, 17h51
  3. Problème avec la classe Calendar
    Par afrikha dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/03/2006, 09h48
  4. Réponses: 9
    Dernier message: 25/09/2005, 17h33
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 16h10

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