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 :

JInternalFrame via un menu


Sujet :

NetBeans Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Points : 29
    Points
    29
    Par défaut JInternalFrame via un menu
    Bonjour,


    j'ai un soucis pour effectuer l'opération suivante: J'ai une fenêtre principale qui contient mes menus , dans ces menus ( pour l'instant un seul ) je veux ouvrir une autre fenêtre qui est contenus dans une autre classe. Cette opération fonctionne à merveille mais moi je veux l'ouvrir en mode interne à mon jDesktop, comme une JInternalFrame dans ma première fenêtre.

    je vous joint le bout de code qui me pose problème.

    Lorsque je laisse actif la ligne desktopPane.add(fenetrePrepa); j'ai automatiquement une erreur.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try { 
                    FenPreparationPharma fenetrePrepa = new FenPreparationPharma();
                    fenetrePrepa.pack();
                    desktopPane.add(fenetrePrepa);
                    fenetrePrepa.setVisible(true);
                    //dispose();
                } 
                    catch(Exception e) {
                    JOptionPane.showMessageDialog(null, 
                            "Impossible d'ouvrir" 
                            + " la fenetre", 
                            "ALERTE", JOptionPane.ERROR_MESSAGE); 
     
                    }


    Merci par avance a ceux qui auront pris quelque minute pour lire mon message et doublement merci pour ceux qui auront des idées...

    Cordialement.

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut

    Citation Envoyé par lcrprod Voir le message
    Lorsque je laisse actif la ligne desktopPane.add(fenetrePrepa); j'ai automatiquement une erreur.
    Et c'est quoi comme erreur?
    Parce que c'est joli de mettre un message d'erreur personnalisé, mais avec ton code du coup on ne sait jamais quelle erreur tu as déclenché...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Bonjour,
    merci pour la réponse.

    voici les codes erreurs générés:

    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
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
    	at java.awt.Container.checkNotAWindow(Container.java:483)
    	at java.awt.Container.addImpl(Container.java:1084)
    	at javax.swing.JLayeredPane.addImpl(JLayeredPane.java:230)
    	at javax.swing.JDesktopPane.addImpl(JDesktopPane.java:474)
    	at java.awt.Container.add(Container.java:410)
    	at Interface.InterfacePrincipale.prepaMenuItemActionPerformed(InterfacePrincipale.java:283)
    	at Interface.InterfacePrincipale.access$400(InterfacePrincipale.java:20)
    	at Interface.InterfacePrincipale$5.actionPerformed(InterfacePrincipale.java:165)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
    	at java.awt.Component.processMouseEvent(Component.java:6505)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    	at java.awt.Component.processEvent(Component.java:6270)
    	at java.awt.Container.processEvent(Container.java:2229)
    	at java.awt.Component.dispatchEventImpl(Component.java:4861)
    	at java.awt.Container.dispatchEventImpl(Container.java:2287)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    	at java.awt.Container.dispatchEventImpl(Container.java:2273)
    	at java.awt.Window.dispatchEventImpl(Window.java:2719)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:682)
    	at java.awt.EventQueue$3.run(EventQueue.java:680)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    	at java.awt.EventQueue$4.run(EventQueue.java:696)
    	at java.awt.EventQueue$4.run(EventQueue.java:694)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
    Je crois que c'est clair...
    Ta fenêtre doit contenir un panel ou un autre container, c'est lui qu'il te faut placer dans ton desktop, pas la fenêtre complète.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    merci pour ta réponse, j'ai rajouté un panel à la classe jframe que je souhaite ouvrir mais j'ai toujours le même message.

    voici la classe complète créer via netbeans. j'avoue je débute dans ce qui est interface graphique....

    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
    110
    111
    112
    113
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package Interface;
     
    /**
     *
     * @author crous
     */
    public class FenPreparationPharma extends javax.swing.JFrame {
     
        /**
         * Creates new form FenPreparationPharma
         */
        public FenPreparationPharma() {
            initComponents();
     
        }
     
        /**
         * This method is called from within the constructor to initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is always
         * regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
     
            jPanel1 = new javax.swing.JPanel();
            jLabel1 = new javax.swing.JLabel();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
            setTitle("Préparation Magistrale Pharmaceutique");
     
            jLabel1.setText("TEST");
     
            javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jLabel1)
                    .addContainerGap(358, Short.MAX_VALUE))
            );
            jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addGap(24, 24, 24)
                    .addComponent(jLabel1)
                    .addContainerGap(262, Short.MAX_VALUE))
            );
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addContainerGap())
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            );
     
            getAccessibleContext().setAccessibleDescription("");
            getAccessibleContext().setAccessibleParent(this);
     
            pack();
        }// </editor-fold>
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            /* Set the Nimbus look and feel */
            //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            try {
                for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        javax.swing.UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(FenPreparationPharma.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(FenPreparationPharma.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(FenPreparationPharma.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(FenPreparationPharma.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
     
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new FenPreparationPharma().setVisible(true);
                }
            });
        }
        // Variables declaration - do not modify
        private javax.swing.JLabel jLabel1;
        private javax.swing.JPanel jPanel1;
        // End of variables declaration
    }

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par lcrprod Voir le message
    j'ai rajouté un panel à la classe jframe que je souhaite ouvrir mais j'ai toujours le même message.
    ce qui est normal...

    Avant, tu essayais d'intégrer dans ton desktop une jframe.
    Maintenant, tu essayes d'intégrer dans ton desktop une jframe... qui intègre un jpanel, ok, mais c'est toujours une jframe. Donc c'est pareil.

    Ce que tu dois faire, c'est intégrer à ton desktop le jpanel qui est intégré dans ta jframe, mais pas intégrer ta jframe directement.

    Donc:
    - soit tu "bidouilles" ta classe FenPreparationPharma pour pouvoir récupérer le jpanel (via un getter par exemple)
    - soit tu modifies ta classe FenPreparationPharma pour lui faire étendre JPanel et plus JFrame (si tant est que tu n'aies plus besoin qu'elle l'étende)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2003
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Merci pour tes explications ,

    Entre temps j'ai trouvé exactement ce que je voulais en recréant ma classe pour qu'elle soit de type swing JInternalFrame et la mon code fonctionne à merveille sans rien touché.

    j'ai trouvé en voulait crée une nouvelle fenêtre

    je passe le sujet en résolu.

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

Discussions similaires

  1. probleme ouvrir interface via un menu
    Par asco5 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/08/2008, 08h54
  2. Réponses: 4
    Dernier message: 05/11/2007, 09h19
  3. Transmission de variables submit via un menu dynamique
    Par gilardino dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/08/2007, 00h13
  4. [Swing] Changer le contenu d'un Container via un menu
    Par TheSeb dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 07/12/2004, 23h07

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