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 :

Superposition JPanel dans JTabbedPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut Superposition JPanel dans JTabbedPane
    Salut a tous,
    Je suis entrain de developper un outils de traitement du signal en java.
    Pour cela, j'ai eu a creer un JTabbedPane contenant les panels de chaque voie étudiée(Graphes du signal,FFT etc...)
    Le probleme que je rencontre est que tous les panels de graphes se superpositionnent les uns sur les autres et je n'arrive pas éviter cela...
    Quelqu'un pourrait m'aider?
    Merci
    Voici un bout de code :

    * Le code de declaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    panneauOnglet = new JTabbedPane();
                    panneauOnglet.setBounds(new Rectangle(0,hPanelTitre,lPanel,getHeight()-hPanelTitre));
     
                    /* On ajoute un listener pour le changement de fenetres par onglets */
                    panneauOnglet.addChangeListener(new ChangeListener()
                    {
                        public void stateChanged(ChangeEvent changeEvent) 
                        {
                            JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource();
                            panneauOnglet.revalidate();
                            repaint();
                        }
                    });
    * Le code d'ajout d'onglets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    this.panneauOnglet.addTab(this.donnees.getVoies(j).getNomVoie(),null,this.onglets[j],"Visualisation de la voie "+this.donnees.getVoies(j).getNomVoie());
            this.panneauOnglet.revalidate();
            if(isTabbed)
            {
                this.panelGeneral.add(panneauOnglet);
            }
    * Et enfin la mise a jour des graphes :
    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
     
    if(gr != null)
            {
                g = gr;
                x = this.lEspace;
                if(!isTabbed)
                    y = i*this.hVoie + (i + 1)*this.hEspace + this.hPanelTitre;
                else
                    y = this.hEspace ;
            }
            else
            {
                if(!isTabbed)
                {
                    g = this.panelGraphVoies[j].getGraphics();
                    x = 0 ;
                    y = 0 ;
                }
                else
                {
                    g = this.onglets[j].getGraphics();
                    x = this.lEspace;
                    y = this.hEspace;
                }
            }
     
    .....
     
    if(isTabbed)
            {
                onglets[j].setVisible(false);
                this.panneauOnglet.setComponentAt(j,onglets[j]);
                this.panneauOnglet.revalidate();
            }
    Si vous avez une idée........MERCIIIIIII

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    c'est normal qu'ils se superpose :p

    si tu disait plutot ce que tu aimerai faire avec on pourrait + t'aider

  3. #3
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    beinh en fait, dans mon logiciel, je voudrai créer 2 options d'affichages, une en mode onglet et l'autre en mode liste.
    Cette dernière est opérationnelle mais par contre, pour la seconde, je souhaiterai pouvoir afficher le graph de chaque voie sur des onglets differents.
    Ci joint une copie ecran du résultat obtenu a ce jour :

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    d'accord c'est plus clair maintenant

    ce que je te propose c'est de definir tes onglet comme JPanel ok..

    ensuite tu place tes onglet de la maniere dont tu veux dans ta frame

    tu rajoute un auditeur d'action (tes onglet peuvent etres des bouton trés minces sa ressemble beaucoup et c'est plus simple a traiter)

    des que tu clique sur un onglet laction est envoyer a ActionPerformed (voir faQ :evenements et action)

    et tu donne donc l'instruction d'afficher le graphe que tu veux dans longlet

    autre methode qui selon moi est plus efficace

    tu defini plusieur JPanel avec dans chacun d'un en titre le nom de l'onglet et le graphe correspondant
    toujour avec des bouton tu rajoute une action que quand tu clique l'attribut de setVisible de ton panel devient true
    a ce moment ton panel sera visible tandis que tout les autre seront effectifs mais non visible

  5. #5
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    merci beaucoup de ton aide.
    Cependant, tu ne penses pas que l'on puisse utiliser le JTabbedPane de java?
    Son implémentation a l'air pourtant pas trop compliquee...
    sinon tampis et je vais faire comme tu me l'a dit.
    Merci encore et a plus

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    tu peux biensur faire avec JTabblePane si tu veux mais la flexibilité est plutot moindre.. si biensur tu veux faire des chose restreintes tu peux l'utiliser mais si plus tard dans ton programme tu voudrait travailler sur tes sous frame ou des chose du genre ce serait plus intelligent de separer ton travail

    neamnois c'est toi qui doit choisir

    une experience personnelle m'a fait recommencer tout mon projet a cause d'un mauvais choix

    donc si tu pense que mon idee est un mauvais choix continue avec le JTabllePanel je peux te donenr toute la doc que tu desire

    mais si tu est a nouveau bloqué ce post sera la pour t'aider

Discussions similaires

  1. Jpanel non visible dans JTabbedPane
    Par clem00738 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 05/06/2012, 14h56
  2. [Java] JScrollPane dans JTabbedPane + JPanel
    Par SoGeek dans le forum Composants
    Réponses: 3
    Dernier message: 21/02/2011, 15h51
  3. Problème d'ajout de JPanel dans un Onglet (JTabbedPane)
    Par SoGeek dans le forum Composants
    Réponses: 1
    Dernier message: 04/09/2010, 15h41
  4. Récupérer JPanel dans un JScrollPane dans un JTabbedPane
    Par orochimaru13 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/05/2008, 11h02

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