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 :

Modifier le contentPane


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Par défaut Modifier le contentPane
    Bonjour,

    Pour expliquer le probleme plus simplement je vais y aller par étape ^^:

    J'ai une jdialog qui me permet de modifier ma Jmenubar en fonction des actions possible de l'utilisateur qui se connecte au programme.

    L'une des ces actions est d'afficher le contenu d'une table de la base de donnée, je souhaite donc que lorsque qu'il clique sur le jmenuitem correspondant à cette action une jtable soit ajoutée au contentPane de ma JFrame.

    J'ai donc decider de recuperer ma jframe dans ma jdialog et de faire ceci avec l'action qui va se produire avec cette dernière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    frame.getContentPane.removeAll();
                            JScrollPane scrollpane = new JScrollPane();
                            JTable table = new JTable();
                            table.setModel(getMonModel());
                            scrollpane.add(table);
                            frame.add(scrollpane);
                            frame.getContentPane.validate();
    Mais voilà quand j'essaye cette action rien ne s'affiche.

    Est ce que j'ai mal réfléchi à mon problème ? ou est ce que j'ai fait une oublier quelque-chose dans mon programme pour que cela marche ?

    Merci pour votre aide

    Cordialement,

    Verazano

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    À cause de leur qualité modale les JDialog fichent souvent la foire dans les GUI, et il faut les manipuler avec précaution.

    Le principe général de leur usage est :
    1. Préparation de la JDialog et la rendre visible, ce qui a pour conséquence de geler plus ou moins les autres traitements GUI
    2. Sur un des boutons de fin de traitement du JDialog, rendre celle-ci invisible, ce qui a pour conséquence de dégeler les autres traitement GUI, notamment celui qui avait lancé la JDialog
    3. Tester depuis ce traitement la JDialog et faire les traitement adaptés
    4. faire le dispose de la JDialog (faisable à l'étape de mise en invisible, si on est sûr que l'on aura pas à réafficher cette JDialog).

    Toi je pense que tu es stoppé parce que tu n'as pas rendu ta JDialog invisible, et les actions que tu as faites sur ta fenêtre principale attendent cet évènement. Je penses que tu devrais faire tous les traitements au sujet du contentPane depuis la JFrame, après que la JDialog ait été rendue invisible.

    C'est le principe général, il admet mille et mille variations.

    Une autre approche est de moduler la modalité de la JDialog ; ça dépend de ce que tu veux faire au final (et éventuellement que mon diagnostic soit correct ! )

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Par défaut
    Je fais bien le setVisible(false) mais pas le dispose()

    Sinon ce que je comprend pas c'est pourquoi pour ma jmenubar ça marche et par pour ma jframe (car en fin de compte je fais le même type de traitement).

    Enfin j'ai du mal à comprendre votre point 3 : Qu'entendez vous par tester la JDialog ?

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    setVisible(false) suffit à sortir de la modalité. Cela n'empêche pas qu'il faut faire le dispose à un moment ou à un autre, mais c'est un autre problème.

    Tester la JDialog est une expression un peu incorrecte en ce cadre ; je voulais dire que, fonction des entrées utilisateur, il faut réagir : si l'utilisateur appuie sur OK ou Annuler, le traitement n'est pas le même, en général.

    Sinon, si c'est pas un problème de ce type... cela peut être un des composants ou un layout qui n'est pas correct... pourrais-tu essayer de mettre juste un JLabel("truc muche") pour voir.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 29
    Par défaut
    Même probleme avec un jlabel

    Peut être le glasspane qui fout la merde ?

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Je ne vois pas comment un glasspane peut foutre la merde ??

    Donc, si tu mets un JLabel dans ta JFrame ça marche, sauf lorsque tu le fais depuis un JDialog, nous en sommes bien là ?

    Si tu confirmes il faut essayer différentes notions : es-tu sûr que la la modalité a été rompue, y a-t-il un layout correct, etc. Si tu n'y arrives pas, fais un petit programme très simple avec méthode main en un seul source java qui compile et reproduise le phénomène et envoie le, on verra mieux.

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

Discussions similaires

  1. [Dojo] modifier "style" du titre ContentPane
    Par okilele dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 09/08/2010, 20h54
  2. Réponses: 5
    Dernier message: 27/11/2002, 15h08
  3. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 15h49
  4. [VB6] [MDI] Modifier form en MDIform
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/09/2002, 14h48
  5. Réponses: 5
    Dernier message: 06/08/2002, 21h08

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