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

Composants Java Discussion :

JSplitPane dans un JTabbedPane


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 25
    Par défaut JSplitPane dans un JTabbedPane
    Bonjour,

    Je souhaiterai avoir un JSplitPane dans un JTabbedPane.
    Seulement lorsque j'écris mon code, je n'y arrive pas. Si j'enlève mon JTabbedPane, mon JSplitPane fonctionne correctement, mais lorsque mon JTabbedPane est dans le code, le JSplitPane ne fonctionne plus...

    Je ne sais pas si j'ai été bien clair...

    Voici mon code :
    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
     
        //Constructeur
        public MenuPanel() {
            //Création de container des onglets - On place les onglets en haut et on affiche une barre de défilement si il y a trop d'onglet
            JTabbedPane onglets = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT);
            //Ajustement de la taille du container d'onglets
            onglets.setPreferredSize(new Dimension(350, 750));
            //Création du premier onglets pour la liste des contacts
            //Si la ligne suivante est commanté, mes onglets ne s'affiche pas mais le split fonctionne... Sinon c'est le contraire...
            JPanel listeContact = new JPanel();
            //Init. des composants de l'onglet "listeContact"
            //JLabel messageAccueilListeContact = new JLabel("Liste des Contacts");
            //listeContact.add(messageAccueilListeContact);
            listeContact();
     
            //Ajout de l'onglet "listeContact" dans le container d'onglets
            onglets.addTab("Liste des Contacts", listeContact);
     
            //Création du second onglets pour la gestion des dossiers
            JPanel listeDossier = new JPanel();
            //Init. des composants de l'onglets "listeDossier"
     
            //Ajout de l'onglet "listeDossier" dans le container d'onglets
            onglets.addTab("Gérer mes dossiers", listeDossier);
     
            onglets.setOpaque(true);
            //On ajoute le container des onglets dans le panel
            super.add(onglets);
        }
     
        private void listeContact() {
            //Création des deux panels à mettre dans le split !
            //Premier panel qui contiendra la liste des contacts
            JPanel liste = new JPanel();
            liste.setBackground(Color.WHITE);
            //Second panel qui affichera des informations
            JPanel info = new JPanel();
            info.setBackground(Color.BLACK);
            //Création du split avec les 2 panels précédents et une barre horizonntal !
            JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, liste, info);
            //Position de la barre du split
            split.setDividerLocation(650);
     
     
            //Affichage du split dans la frame
            DevWithMe.Main.getDevWithMeFrame().getContentPane().add(split, BorderLayout.SOUTH);
            DevWithMe.Main.getDevWithMeFrame().setVisible(true);
     
        }
    Merci beaucoup de votre aide
    Si vous voulez des détails, n'hésitez pas à me demander
    Merci

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,
    je n'ai compris ni ton code, ni ta question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DevWithMe.Main.getDevWithMeFrame().getContentPane().add(split, BorderLayout.SOUTH);
            DevWithMe.Main.getDevWithMeFrame().setVisible(true);
    ???
    et puis tu dis vouloir mettre le JSlitPane au JTabbedPane, mais je vois que tu déclares localement ces deux composants dans le constructeur et la méthode listeContact, donc aucun ne reconnait l'autre!!
    je crois que plus d'explications s'imposent

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 25
    Par défaut
    En fait dans mon application je veux avoir des onglets.
    Et je veux que dans ces onglets, il y est des JSplitPane.

    Dans mon code, je suis dans mon panel "MenuPanel".
    Donc j'ai voulu créer mon onglets dans ce panel à l'aide de JTabbedPane.
    Ensuite je crée 2 onglets différents.

    Ensuite pour y voir plus clair dans mon code, j'ai voulu séparé le contenu des onglets dans des fonctions différentes d'où le listeContact()...

    Je pensai qu'en créant un split dans ce listeContact ce serai plus visible.

    Les 2 lignes que tu citent appelle ma frame qui n'est pas dans le même package.

    Donc si je reprends et que j'enleve ma fonction listeContact et que je veux afficher des composants sans split, celà fonctionne... Seulement pour simplifier la lecture du code j'ai voulu le séparer mais peut-être que ce n'est pas une bonne idée...

    N'hésite pas si tu veux d'autres détails/explications...

    PS: Merci de ton aide

  4. #4
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,
    ce que je ne comprends pas, c'est que ton JTabbedPane est déclaré localement dans ton constructeur, alors que le JSplitPane est créé localement aussi dans la méthode listeContact, donc comment tu fais pour ajouter ton splitpane dans ta tabbedpane, vu qu'il ne se connaissent pas, puisqu'ils sont locale tous les deux.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 25
    Par défaut
    Heu effectivement... Je vais essayer de les déclarer avant dans la class pour tester....

    Je débute, je fais encore des fautes bêtes...

    Merci

    Edit :

    J'ai modifié le code, normalement maintenant mon JTabbedPane et le JSplitPane se connaisse, j'ai ajouter le Split au Tabbed mais sa ne veut toujours pas fonctionner.... Ai je mal utilisé les propriété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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    public class MenuPanel extends JPanel {
     
    private JPanel listeContact = new JPanel();
    private JSplitPane split = new JSplitPane();
     
     
        //Constructeur
        public MenuPanel() {
            //Init de la barre de menu !
            MenuBar menuBar = new MenuBar();
            menuBar.MenuBar();
            //Création de container des onglets - On place les onglets en haut et on affiche une barre de défilement si il y a trop d'onglet
            JTabbedPane onglets = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT);
            //Ajustement de la taille du container d'onglets
            onglets.setPreferredSize(new Dimension(350, 750));
            //Création du premier onglets pour la liste des contacts
            //JPanel listeContact = new JPanel();
            //Init. des composants de l'onglet "listeContact"
            //JLabel messageAccueilListeContact = new JLabel("Liste des Contacts");
            //listeContact.add(messageAccueilListeContact);
            listeContact();
     
            //Ajout de l'onglet "listeContact" dans le container d'onglets
            onglets.addTab("Liste des Contacts", listeContact);
     
            //Création du second onglets pour la gestion des dossiers
            JPanel listeDossier = new JPanel();
            //Init. des composants de l'onglets "listeDossier"
     
            //Ajout de l'onglet "listeDossier" dans le container d'onglets
            onglets.addTab("Gérer mes dossiers", listeDossier);
     
            onglets.setOpaque(true);
            //On ajoute le container des onglets dans le panel
            super.add(onglets);
        }
     
        private void listeContact() {
            //Création des deux panels à mettre dans le split !
            //Premier panel qui contiendra la liste des contacts
            JPanel liste = new JPanel();
            liste.setBackground(Color.WHITE);
            JLabel test = new JLabel("Test");
            liste.add(test);
            //Second panel qui affichera des informations
            JPanel info = new JPanel();
            info.setBackground(Color.BLACK);
            //Création du split avec les 2 panels précédents et une barre horizonntal !
            split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, liste, info);
            //Position de la barre du split
            split.setDividerLocation(600);
            //Ajout du split dans l'onglet "listeContact"
            listeContact.add(split);
     
            //Affichage du split dans la frame. Dois je l'affocher dans la frame ? Exemple vu sur le net...je ne suis pas du tout sur
            DevWithMe.Main.getDevWithMeFrame().getContentPane().add(split, BorderLayout.SOUTH);
            DevWithMe.Main.getDevWithMeFrame().setVisible(true);
     
        }
     
     
     
    }

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 25
    Par défaut
    Bonjour,

    J'ai finalement réussi à venir à bout de mon problème, j'utilisai mal certaines propriétés.

    Il fallait effectivement que je déclare le JSplitPane et le Panel dans la class pour qu'ils se reconnaissent

    Voici donc le code de la fonction qui me posait problème...
    J'ai du donner une taille au split sinon il prenait la taille du composant qui était dedans ou alors la taille minimum si il n'y avait rien...

    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
        private void listeContact() {
            //Création des deux panels à mettre dans le split !
            //Premier panel qui contiendra la liste des contacts
            JPanel liste = new JPanel();
            liste.setBackground(Color.WHITE);
            JLabel MessageListeContact = new JLabel("Liste des Contacts : ");
            liste.add(MessageListeContact);
            //Second panel qui affichera des informations
            JPanel info = new JPanel();
            info.setBackground(Color.WHITE);
            //Un bouton pour ajouter des contacts
            JButton ajouterContact = new JButton("Ajouter un contact");
            info.add(ajouterContact);
            //Création du split avec les 2 panels précédents et une barre horizonntal !
            splitListeContact = new JSplitPane(JSplitPane.VERTICAL_SPLIT, liste, info);
            //Position de la barre du split
            splitListeContact.setDividerLocation(600);
            //Ajout du split dans l'onglet "listeContact"
            listeContact.add(splitListeContact);
            //Dimension du split pour qu'il utilise toute la fenetre...
            splitListeContact.setPreferredSize(new Dimension(350, 750));
        }

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

Discussions similaires

  1. Affichage d'un Component dans un JTabbedPane
    Par bit_o dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 13/06/2007, 09h09
  2. panel de login dans un JTabbedPane
    Par kamikazbe dans le forum JDBC
    Réponses: 1
    Dernier message: 27/05/2007, 19h24
  3. Réponses: 5
    Dernier message: 10/03/2007, 14h05
  4. Attacher un processus graphique dans un JTabbedPane
    Par guilig dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/08/2006, 16h07
  5. Taille d'un composant dans un JTabbedPane
    Par bischof dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 18/04/2005, 18h13

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