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

NetBeans Java Discussion :

Boite de dialogue personnalisé JDialog et NetBeans


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut Boite de dialogue personnalisé JDialog et NetBeans
    Bonjour,

    J'utilse NetBeans pour une application fenêtrée.
    J'ai fait une "JFrame Form" et quand on clic sur le menu "?" (A propos) je voudrais afficher une petite boite de dialogue avec des informations sur l'application.

    Pour cela je voudrais faire une JDialog personnalisé. Je sais le faire en Java pur, mais je voie que dans la palette des composant NetBeans permet de le faire et donc générer le code associé ce qui me simplifirai la tâche.

    J'ai donc ajouté une JDialog. En mode Design je peux ajouter des composants, ect.
    Cependant je n'arrive pas à l'afficher; dans le code source je voie que la boite est créée dans le code généré:
    dialogAPropos = new javax.swing.JDialog();
    Et que tous les composants y sont ajoutés.

    Cependant, lors du clic sur mon menu j'appelle une méthode qui est censé afficher la boite de dialogue. Mais quand je fais:
    dialogAPropos.setVisible(true);

    Il ne se passe rien... Je pense que cela vient du fait que la boite n'est pas attachée à la JFrame, mais je ne voie pas comment faire.

    Merci de votre coup de main !

  2. #2
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Salut,
    est ce qu'on peut voir la méthode dans laquelle tu fais appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dialogAPropos.setVisible(true);
    Et aussi vérifie que ton application ne génère aucune exception à ce moment, mais on en saura plus quand tu mettras un peu de code

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    Bonjour,

    Et bien le code est très simple, ma méthode ne fait que cela !
    J'ai un évennement attaché à mon JMenuItem qui appelle la méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        // Afficher l'information "A propos"
        private void mItemAProposActionPerformed(java.awt.event.ActionEvent evt) {                                             
     
            dialogAPropos.setVisible(true);
        }
    Je suis assuré que l'appelle se passe bien, car avant j'avais le code suivant pour afficher une boite de dialogue "standard":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        // Afficher l'information "A propos"
        private void mItemAProposActionPerformed(java.awt.event.ActionEvent evt) {                                             
     
            JOptionPane.showMessageDialog(this, "Description de mon appli", "A propos", JOptionPane.INFORMATION_MESSAGE);
        }
    Et la boite de dialogue s'affichait sans aucun soucis.

  4. #4
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Je peux voir le code source de création de la JDialog,

    sinon essaye de lui donner une preferredSize

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 433
    Par défaut
    Bah le code de la JDialog est celui généré par NetBeans:

    1) Tout en bas dans les champs privées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private javax.swing.JDialog dialogAPropos;
    2) Dans initComponent():
    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
        private void initComponents() {
     
            ...
     
            dialogAPropos = new javax.swing.JDialog();
     
            ...
     
            javax.swing.GroupLayout dialPanelContenuLayout = new javax.swing.GroupLayout(dialPanelContenu);
            dialPanelContenu.setLayout(dialPanelContenuLayout);
            dialPanelContenuLayout.setHorizontalGroup(
                dialPanelContenuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(dialPanelContenuLayout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(dialPanelContenuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(dialPanelContenuLayout.createSequentialGroup()
                            .addComponent(dialImgLogo)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(dialLabTexte, javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE))
                        .addComponent(dialBtnOk, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addContainerGap())
            );
            dialPanelContenuLayout.setVerticalGroup(
                dialPanelContenuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(dialPanelContenuLayout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(dialPanelContenuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(dialImgLogo)
                        .addComponent(dialLabTexte, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(dialBtnOk)
                    .addContainerGap())
            );
     
                    ...
     
                    javax.swing.GroupLayout dialogAProposLayout = new javax.swing.GroupLayout(dialogAPropos.getContentPane());
            dialogAPropos.getContentPane().setLayout(dialogAProposLayout);
            dialogAProposLayout.setHorizontalGroup(
                dialogAProposLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(dialPanelContenu, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            );
            dialogAProposLayout.setVerticalGroup(
                dialogAProposLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(dialPanelContenu, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            );
    Pourquoi lui donner une preferredSize ?
    Puisque la boite est cachée par défaut, il faut déjà l'afficher non ?

  6. #6
    Membre chevronné Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Par défaut
    Je crois que le preferredSize sera utilisé pour l'affichage, parceque j'ai eu des problèmes ou la fenetre est affichée mais on la voit pas parcequ'elle avait la taille (0,0)

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

Discussions similaires

  1. Création boite dialogue personnalisé pour ouverture fichier
    Par Xx_raaY dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/06/2009, 12h07
  2. UML et boite de dialogue message dans netbeans 5
    Par bambi98 dans le forum NetBeans
    Réponses: 0
    Dernier message: 19/02/2009, 11h42
  3. jFace NetBeans boite de dialogue
    Par nutix2003 dans le forum NetBeans
    Réponses: 3
    Dernier message: 22/10/2006, 15h03
  4. Boite de dialogue ou equivalent personnalisé
    Par MDiabolo dans le forum C++Builder
    Réponses: 3
    Dernier message: 09/03/2006, 19h00
  5. [JDialog] Centrer une boite de dialogue.
    Par GETah dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 07/01/2005, 16h44

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