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

AWT/Swing Java Discussion :

Ouvrir une fenêtre interne


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut Ouvrir une fenêtre interne
    Salut,

    désolé de venir vous embêter avec ça, mes souvenirs de prog événementielle commencent à être un peu loin =)

    Je voudrais qu'en cliquant sur un jmenuitem de mon appli je provoque l'affichage d'une fenêtre interne, avec du texte par exemple à l'intérieur.

    Je ne me rappelle plus du tout de la façon dont il faut procéder pour faire ceci...

    Il me semble qu'il y a une histoire de frame interne mais c'est vraiment trop loin

    Merci pour votre aide !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    J'ai fini par trouver la solution


    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
    public MyInternalFrame() {
     
     super("Aide utilisation #" + (++openFrameCount), true, // resizable
     
     true, // closable
     
     true, // maximizable
     
     true);// iconifiable
     
     setSize(500, 500);
     
     // Set the window's location.
     
     setLocation(xPosition * openFrameCount, yPosition
     
     * openFrameCount);
     
     }
     
     }
     
     
     
        protected void createFrame() {
     
     MyInternalFrame frame = new MyInternalFrame();
     
     frame.setVisible(true);
     
     // Every JInternalFrame must be added to content pane using JDesktopPane
     
     jdpDesktop.add(frame);
     
     
     
     try {
     
     frame.setSelected(true);
     
     } catch (java.beans.PropertyVetoException e) {
     
     }
     
     }

    Et donc j'ouvre cette frame en cliquant sur un menu.


    Par contre, je n'ai pas réussi à ajouter un panel et du textarea pour mettre du texte à l'intérieur de cette jframe

  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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par Amnael Voir le message
    Par contre, je n'ai pas réussi à ajouter un panel et du textarea pour mettre du texte à l'intérieur de cette jframe
    Exactement comme pour une JFrame :
    • En ajoutant des composants dans son content pane (par exemple, internalframe.getContentPane().add...) ;
    • Ou en remplaçant son content pane internalframe.setContentPane( panel ).
    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.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    Salut,

    merci pour tes indications

    J'ai modifié ma fonction créant la jframe interne pour qu'elle inclue un jpanel.

    Par contre maintenant c'est mon jpanel dans lequel je veux mettre un jtextarea, mais ça ne veut toujours pas marcher

    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
        protected void createFrame() {
     
     MyInternalFrame frame = new MyInternalFrame();
     
     frame.setVisible(true);
     
     // Every JInternalFrame must be added to content pane using JDesktopPane
     JPanel pan=new JPanel();
     JTextArea jtemp=new JTextArea();
     jtemp.setBackground(Color.RED);
     pan.add(jtemp);
     pan.setBackground(Color.white);
     frame.setContentPane(pan);
     jdpDesktop.add(frame);
     
     
     
     try {
     
     frame.setSelected(true);
     
     } catch (java.beans.PropertyVetoException e) {
     
     }
     
     }
    Je suis vraiment une loque dès que je peux pas utiliser netbeans pour les interfaces --'
    Je n'aurais jamais dû apprendre les interfaces graphiques de java avec netbeans, c'est pratique mais ça ne permet pas de retenir si on ne s'y met pas vraiment dedans...

  5. #5
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Le problème c'est que tu rends visible la fenêtre avant d'ajouter son contenu : dans ce cas, il n'y a pas de mécanisme automatique de rafraîchissement.

    Toujours préparer entièrement le contenu d'une fenêtre avant de l'afficher. Si le contenu devait changer par la suite (je parle de changer les composants), il faut indiquer à Swing qu'on a changé quelque chose :

    • quand ça a un impact sur l'agencement des composants (layout), soit leur taille et leur position, on doit invalider par la méthode invalidate(), ou revalidate() qui va faire les invalidate() nécessaires (en remontant dans la hiérarchie de composant))
    • lorsqu'on doit redessiner quelque chose, on appelle repaint().


    Au plus simple, dès que tu modifies les composants dans un conteneur (tu en supprimes, tu en ajoutes) qui est dans une fenêtre déjà affiché (une fois tous les composants supprimés et les nouveaux ajoutés, ça suffit) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    conteneur.revalidate();
    conteneur.repaint();

    Dans certains cas, l'affichage se rétablira de lui-même parce qu'on passera par des méthodes de Swing qui le font explicitement (comme redimensionner une fenêtre par exemple).
    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.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    Super, merci beaucoup

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

Discussions similaires

  1. Comment ouvrir une fenêtre en plein écran ?
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/10/2005, 12h05
  2. Ouvrir une fenêtre pop up en plus d'une page normale
    Par Satination dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/08/2005, 10h28
  3. Ouvrir une fenêtre et la fermer après un certain temps
    Par MiJack dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2005, 17h16
  4. [JFrame] Comment ouvrir une fenêtre maximiser
    Par dadg dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 11/12/2004, 18h38
  5. [Applet] ouvrir une fenêtre IE
    Par gl0be dans le forum Applets
    Réponses: 2
    Dernier message: 18/03/2004, 16h42

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