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

Interfaces Graphiques en Java Discussion :

Problème d'ouverture d'une fenêtre vide


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut Problème d'ouverture d'une fenêtre vide
    Bonjour à tous,

    J'ai développé un formulaire sous WindowBuilder et lorsque je le lance il s'affiche correctement.

    Le problème est que lorsque je crée un main appelant la classe, j'obtiens l'affichage d'une fenêtre minuscule et vide.

    Voici le code de ma classe Accueil
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JTextField;
    import java.awt.BorderLayout;
    import javax.swing.JButton;
    import javax.swing.SwingConstants;
    import java.awt.Color;
    import javax.swing.JToggleButton;
    import javax.swing.UIManager;
    import java.awt.Dimension;
    import javax.swing.JMenuBar;
    import java.awt.CardLayout;
    import java.awt.GridBagLayout;
    import java.awt.Rectangle;
    import javax.swing.JPanel;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import java.awt.Component;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
     
    public class Accueil extends JFrame 
    {
        private JFrame frame;
        private JMenuBar menuBar;
        private JMenu mnMenu;
        private JMenu mnNewMenu_1;
        private JMenuItem mntmNouveauProjet;
        private JMenuItem mntmNouvelTache;
        private JMenuItem mntmQuiter;
        private JMenuItem mntmProjet;
        private JMenuItem mntmTche;
        private JMenuItem mntmResource;
     
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        Accueil window = new Accueil();
                        window.frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
     
        /**
         * Create the application.
         */
        public Accueil() {
            initialize();
        }
     
        /**
         * Initialize the contents of the frame.
         */
        private void initialize() {
            frame = new JFrame();
            frame.setResizable(false);
            frame.setBounds(100, 100, 450, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().setLayout(null);
     
            menuBar = new JMenuBar();
            menuBar.setBounds(0, 0, 434, 21);
            frame.getContentPane().add(menuBar);
     
            mnMenu = new JMenu("Menu");
            mnMenu.setActionCommand("Menu");
            menuBar.add(mnMenu);
     
            mntmNouveauProjet = new JMenuItem("Nouveau projet");
     
            mnMenu.add(mntmNouveauProjet);
     
            mntmNouvelTache = new JMenuItem("Nouvel Resource");
            mntmNouvelTache.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    Ressource fenetre;
                    fenetre = new Ressource();
                    fenetre.setVisible(true);
                }
            });
            mnMenu.add(mntmNouvelTache);
     
            mntmQuiter = new JMenuItem("Quiter");
            mnMenu.add(mntmQuiter);
     
            mnNewMenu_1 = new JMenu("Recherche");
            mnNewMenu_1.setActionCommand("Recherche");
            menuBar.add(mnNewMenu_1);
     
            mntmProjet = new JMenuItem("Projet");
            mnNewMenu_1.add(mntmProjet);
     
            mntmTche = new JMenuItem("T\u00E2che");
            mnNewMenu_1.add(mntmTche);
     
            mntmResource = new JMenuItem("Resource");
            mnNewMenu_1.add(mntmResource);
        }
    }
    et voici le main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Main {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            Accueil fenetreAccueil;
            fenetreAccueil = new Accueil();
            fenetreAccueil.setVisible(true);
        }
    }
    Quelqu'un saurait-il d'où peut venir le problème ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    C'est quoi ta classe test02 ?

    Le main de la classe Accueil doit afficher une fenêtre avec une barre de menu.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    C'est simple, ta classe Aceuil étends JFrame.

    Si tu fais accueil.setVisible() tu affiche ta JFRame accueil.

    Sauf que celle que tu initialise c'est la JFrame qui est DANS la classe Accueil.

    Soit tu mets un champs JFrame que tu initialise et pas besoin d'étendre JFrame, soit tu étends JFrame et tu supprime ton champ JFrame de la classe accueil et tu ajoute tes composants à this.

    En espérant être clair.



    Edit :
    En gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Accueil
    extends JFrame // Tu affiches CA !!
    {
     
    	private JFrame frame; // Tu initialises CA !!
     
    }

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut
    Hello merci pour ta réponse

    Quand tu dit supprimer la champ JFrame tu dit supprimer la ligne

    private JFrame frame; ?

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Peut importe.
    Soit tu supprimes le champ frame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Accueil
    extends JFrame // Dans ce cas tu affiches CA !!
    {
     
    }
     
     
    // dans le main
    Accueil accueil = new Accueil();
    accueil.setVisible(true);   // Va afficher la JFrame accueil

    Soit tu supprime le extends JFrame, auquel cas tu peux ajouter une méthode setVisible pour afficher ton champ frame.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Accueil
    {
         private JFrame frame; // Dans ce cas tu affiches CA !!
     
         public void setVisible(boolean b) {
               frame.setVisible(true);
         }
    }
     
     
    // dans le main
    Accueil accueil = new Accueil();
    accueil.setVisible(true);   // Va afficher la JFrame accueil.frame

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut
    Au fait le main et Accueil sont dans 2 fichiers Java différents donc quand je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Accueil accueil = new Accueil();
    accueil.setVisible(true);
    dans mon main il me souligne setVisible

    Et sinon, le principe de l'application est une suite de formulaires qui s'appellent les uns et les autres afin d'alimenter une base de données.

  7. #7
    Membre actif Avatar de aljessy
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 319
    Points : 200
    Points
    200
    Par défaut
    permet moi de réécrire tes deux classes:

    //Accueil.java:
    ==========

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JTextField;
    import java.awt.BorderLayout;
    import javax.swing.JButton;
    import javax.swing.SwingConstants;
    import java.awt.Color;
    import javax.swing.JToggleButton;
    import javax.swing.UIManager;
    import java.awt.Dimension;
    import javax.swing.JMenuBar;
    import java.awt.CardLayout;
    import java.awt.GridBagLayout;
    import java.awt.Rectangle;
    import javax.swing.JPanel;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import java.awt.Component;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
     
    public class Accueil extends JFrame 
    {
        private JFrame frame;
        private JMenuBar menuBar;
        private JMenu mnMenu;
        private JMenu mnNewMenu_1;
        private JMenuItem mntmNouveauProjet;
        private JMenuItem mntmNouvelTache;
        private JMenuItem mntmQuiter;
        private JMenuItem mntmProjet;
        private JMenuItem mntmTche;
        private JMenuItem mntmResource;
     
     
        /**
         * Create the application.
         */
        public Accueil() {
            this.setResizable(false);
            this.setBounds(100, 100, 450, 300);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            initialize();
        }
     
        /**
         * Initialize the contents of the frame.
         */
        private void initialize() {
     
            getContentPane().setLayout(null);
     
            menuBar = new JMenuBar();
            menuBar.setBounds(0, 0, 434, 21);
            frame.getContentPane().add(menuBar);
     
            mnMenu = new JMenu("Menu");
            mnMenu.setActionCommand("Menu");
            menuBar.add(mnMenu);
     
            mntmNouveauProjet = new JMenuItem("Nouveau projet");
     
            mnMenu.add(mntmNouveauProjet);
     
            mntmNouvelTache = new JMenuItem("Nouvel Resource");
            mntmNouvelTache.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    Ressource fenetre;
                    fenetre = new Ressource();
                    fenetre.setVisible(true);
                }
            });
            mnMenu.add(mntmNouvelTache);
     
            mntmQuiter = new JMenuItem("Quiter");
            mnMenu.add(mntmQuiter);
     
            mnNewMenu_1 = new JMenu("Recherche");
            mnNewMenu_1.setActionCommand("Recherche");
            menuBar.add(mnNewMenu_1);
     
            mntmProjet = new JMenuItem("Projet");
            mnNewMenu_1.add(mntmProjet);
     
            mntmTche = new JMenuItem("T\u00E2che");
            mnNewMenu_1.add(mntmTche);
     
            mntmResource = new JMenuItem("Resource");
            mnNewMenu_1.add(mntmResource);
        }
    }
    Main.java:
    =======

    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
    17
    public class Main {
     
     
    	public Main(){
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    Accueil ac = new Accueil();
                    ac.setVisible(true);
     
                }
            });
        }
     
        public static void main(String[] args) {
            new Main();
        }
    }
    Ceci devrait marcher. Je ne l'ai pas tester vu que je l'ai ecrit sous bloc note mais il devrait en principe à une exception prette marcher

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Citation Envoyé par Syliano Voir le message
    accueil.setVisible(true);[/code]dans mon main il me souligne setVisible
    C'est que tu as du opter pour la suppression du "extends JFrame" sans ajouter la méhode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void setVisible(boolean b) {
        frame.setVisible(true);
    }
    Dans ta classe accueil.

  9. #9
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut
    Merci à vous 2 tout marche bien je vais pouvoir avancer

  10. #10
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Au pasage je corrige une erreur dans ce que j'ai posté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void setVisible(boolean b) {
        frame.setVisible(b); // A la place de setVisible(true);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour l'ouverture d'une fenêtre tkinter
    Par Invité dans le forum Général Python
    Réponses: 9
    Dernier message: 11/04/2014, 12h44
  2. Problème à l'ouverture d'une sous-fenêtre MDI
    Par sebasti1-88 dans le forum Débuter
    Réponses: 4
    Dernier message: 05/07/2011, 15h16
  3. Réponses: 2
    Dernier message: 20/04/2010, 18h03
  4. Appariton d'une fenêtre vide
    Par dedeloux dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 25/07/2005, 17h51
  5. [HTTPS] ouverture d'une fenêtre
    Par Boosters dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/01/2005, 14h08

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