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 :

Afficher un même JPanel dans plusieurs onglets de JTabbedPane (dans une même JFrame)


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Afficher un même JPanel dans plusieurs onglets de JTabbedPane (dans une même JFrame)
    Bonsoir,

    Mon besoin est le suivant: je souhaite faire afficher un même JPanel dans plusieurs onglets différents d'un JTabbedPane.

    J'ai défini une classe JPanelRapportArrivage.java qui comporte un JTabbedPane regroupant plusieurs onglets. L'objectif de cette classe est de pouvoir configurer les règles de génération des rapports d'arrivage (horaires, automatisation, etc...) et différentes choses liées à ce process "Rapport arrivage".

    J'ai également défini une autre classe JPanelClient qui comporte un JTabbedPane avec plusieurs onglets (informations générales, expéditeur, comptabilité, tarifs, web, edi, etc...). Cette classe est la classe "principale" qui affiche l'ensemble des informations du client. Les onglets peuvent eux aussi contenir des JTabbedPane afin de bien séparer les différentes fonctionnalités du programme.

    Afin de simplifier la configuration globale du client, j'aimerais que le panel panelRapportArrivage soit présent sur à la fois sur les onglets Expéditeur, EDI et WEB de telle façon que la configuration de ce rapport d'arrivage (qui est unique pour le client considéré) soit accessible lorsque l'utilisateur configure l'EDI ou configure le compte WEB: il ne faut pas qu'il ait à se souvenir dans quel onglet est caché l'onglet de configuration du rapport d'arrivage.

    Le problème que je rencontre est le suivant:

    J'effectue les appels suivants:

    panelRapportArrivage = new JPanelRapportArrivage();
    .../... // Quelques initialisations de champs.
    jTabbedPaneExpediteur.add("Rapport Arrivage",panelRapportArrivage);
    jTabbedPaneWEB.add("Rapport Arrivage",panelRapportArrivage);
    jTabbedPanelEDI.add("Rapport Arrivage",panelRapportArrivage);
    .../...

    La bizarrerie est la suivante: le panel panelRapportArrivage n'apparait que dans un onglet de jTabbedPanelEDI.

    Si j'inverse les appels et que le dernier appel concerne jTabbedPanelWEB.add(....), c'est dans un onglet de jTabbedPaneWEB que le panel apparaît.

    Mais je constate qu'un onglet avec le titre "Rapport Arrivage" a été créé dans les différents JTabbedPane concernés par les appels.

    J'ai tenté de récupérer la liste des components du panel panelRapportArrivage pour les "ajouter" manuellement aux endroits souhaités, mais le comportement reste le même.

    Auriez-vous une idée du pourquoi du comment? Ou une solution pour attendre cet objectif de présentation de l'interface?

    Vous remerciant par avance de vos lumières et/ou suggestions de recherche,

    Bonne soirée.

    Laurent

    PS: J'espère avoir été assez clair.

    PS2: je ne peux malheureusement pas glisser le code en question, bien trop volumineux...

  2. #2
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il n'y aucune bizarrerie : un composant swing ne peut avoir qu'un seul parent. Il ne peut donc être présent que d'un seul conteneur à la fois : l'ajouter dans un conteneur, le retire donc du conteneur dans lequel il se trouvait précédemment. Il est donc tout à fait normal qu'il n'apparaisse que dans le dernier conteneur où tu l'as ajouté.

    Il va falloir que soit :
    - tu gères par évènements la répercussion des modifications dans une instance de JPanelRapportArrivage, dans les 2 autres ;
    - tu gères un modèle partagé (un modèle à toi, qui pourrait être un java.util.prefs.Preferences, dont tu peux exploiter les évenements ) entre trois instances de JPanelRapportArrivage ;
    - avoir une seule instance, dans un dialogue à part.

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour cette explication limpide!!!

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/02/2015, 23h48
  2. [AC-2010] Même formulaire dans plusieurs onglets
    Par paidge dans le forum IHM
    Réponses: 1
    Dernier message: 14/06/2013, 17h49
  3. Comparaison de colonnes dans plusieurs onglets
    Par zagus dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 06/10/2008, 15h05
  4. trier dans plusieurs onglets
    Par bibvba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/03/2008, 12h10
  5. Réponses: 2
    Dernier message: 23/08/2007, 21h45

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