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 :

[JSplitPane] Déclencher la réduction


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut [JSplitPane] Déclencher la réduction
    Bonjour,

    j'aimerais savoir s'il est possible, par exemple, de déclencher la expansion ou la reduction d'un JSplitPane par une action externe, comme le clic sur un bouton ou tout autre action externe au JSplitPane.

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Bonjour,

    Essaie ca :
    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
     
    public class SplitMove extends JApplet
    {
     
       private JSplitPane split;
    public void init()
    	{
     		JPanel p1 = new JPanel();
     		p1.setLayout(new BorderLayout());
          p1.add(new JLabel("Panneau 1"),BorderLayout.CENTER);
     
          JPanel p2 = new JPanel();
          p2.setLayout(new BorderLayout());
          p2.add(new JLabel("Panneau 2"),BorderLayout.CENTER);
     
          split = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                p1,
                p2);
     
     
          JButton max1 = new JButton("max 1");
          max1.addActionListener(new ActionListener()
          {
             public void actionPerformed(ActionEvent e)
             {
                  split.setDividerLocation(1d);
             }
          }
          );
          JButton max2 = new JButton("max 2");
          max2.addActionListener(new ActionListener()
          {
             public void actionPerformed(ActionEvent e)
             {
                  split.setDividerLocation(0d);
             }
          }
          );
     
          JPanel princ = new JPanel();
          princ.setLayout(new BorderLayout());
          princ.add(max1,BorderLayout.NORTH);
          princ.add(max2,BorderLayout.SOUTH);
          princ.add(split,BorderLayout.CENTER);
          this.getContentPane().add(princ);
    	}
     
     
     
    }
    Si c'est ce que tu voulais tant mieux ! sinon désolé !

  3. #3
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    qu'entend tu par exepention on reduction d'un JSplitePane ??? Dans tout les cas tu peut declancher nimporte quelle action une fois que tu a capturer l'evenement relatif a l'appuie sur un bouton par exemple ... Je comprend pas vraiment le problème essais d'etre plus clair ...

  4. #4
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    Citation Envoyé par NicoWrmCorp
    Bonjour,

    Essaie ca :
    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
     
    public class SplitMove extends JApplet
    {
     
       private JSplitPane split;
    public void init()
    	{
     		JPanel p1 = new JPanel();
     		p1.setLayout(new BorderLayout());
          p1.add(new JLabel("Panneau 1"),BorderLayout.CENTER);
     
          JPanel p2 = new JPanel();
          p2.setLayout(new BorderLayout());
          p2.add(new JLabel("Panneau 2"),BorderLayout.CENTER);
     
          split = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                p1,
                p2);
     
     
          JButton max1 = new JButton("max 1");
          max1.addActionListener(new ActionListener()
          {
             public void actionPerformed(ActionEvent e)
             {
                  split.setDividerLocation(1d);
             }
          }
          );
          JButton max2 = new JButton("max 2");
          max2.addActionListener(new ActionListener()
          {
             public void actionPerformed(ActionEvent e)
             {
                  split.setDividerLocation(0d);
             }
          }
          );
     
          JPanel princ = new JPanel();
          princ.setLayout(new BorderLayout());
          princ.add(max1,BorderLayout.NORTH);
          princ.add(max2,BorderLayout.SOUTH);
          princ.add(split,BorderLayout.CENTER);
          this.getContentPane().add(princ);
    	}
     
     
     
    }
    Si c'est ce que tu voulais tant mieux ! sinon désolé !
    split.setDividerLocation(1d);
    a quoi correspond 1d ?


    et j'attends juste de pouvoir...euh..reduire le splitPane, de faire soit apparaitre, soit disparaitre un des panneaux du splitPane par une action externe...c'est plus clair ?

  5. #5
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    1d c'est le chiffre 1 en double.

    setDividerLocation(double proportion)

    donc en gros :
    0d c'est 0%
    1d c'est 100%

    Le code que je viens de t'envoyer réduit un panneau et forcément maximise l'autre.

    Si tu ne souhaite pas une réduction totale : setDividerLocation peut aussi prendre un int et dans ce cas c'est en pixel qu'il faut préciser.

  6. #6
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Alors il te suffit de mettre un listener sur ton bouton, puis qquand tu click sur le bouton tu n'a plus qu'a faire comme te le suggère NicoWrmCorp split.setDividerLocation(1d); ou split.setDividerLocation(0d); suivant le pant du JSplitePane que tu souhaite afficher

    ++

  7. #7
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    bah nickel alors...c'est ce que je voulais

    et sinon...comment faire en sorte que le JSplitPane ne "marche" pas quand on veut clicker dessus...
    genre qu'on ne puisse pas modifier la taille des panneaux via la JSplitPane mais uniquement via le bouton justement

  8. #8
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Par rapport au code de tout à l'heure : tu ajoute ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    split.setEnabled(false);

  9. #9
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    Citation Envoyé par NicoWrmCorp
    Par rapport au code de tout à l'heure : tu ajoute ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    split.setEnabled(false);
    si c'est pas terrible...

    c'est que ca me donnerait presque une application macEsque

    merci bcp

  10. #10
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    alors je reviens sur le sujet...parce que y a un truc qui me chamboule


    le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setDividerLocation(double d)
    si je passe en argument 1d, ca va mettre le panneau du haut a 100%...donc faire "disparaitre" celui du bas ?

    mais ensuite, je veux en fait, sur l'action du bouton, faire réapparaitre le panneau du bas, or, si je passe en argument 0d, ca va faire disparaitre le panneau du haut non ?


    ensuite encore une question, comment faire en sorte que le Panel occupe l'espace maximum, parce que la pour l'instant les panel qui sont dans mon JSplitPane n'occupe pas l'espace...il ne s'étire pas a l'intérieur du splitPane...


    voila...je pense que j'ai posé mes questions...si c'est pas assez clair...n'hesitez pas

  11. #11
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Par défaut
    Tu peux commencer par mettre 0.5d pour le départ (moitié, moitié pas de jaloux !).

    1d ou 0d va effectivement faire disparaitre l'un ou l'autre de tes panneaux.

    Si tu as bien un Layout non null dans tes panneaux, ils devraient d'étirer normalement. Sinon place les dans des JScrollPane et les JScrollPane dans le split ca devrait faire ton affaire .... à essayer ...

  12. #12
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    Citation Envoyé par NicoWrmCorp
    Tu peux commencer par mettre 0.5d pour le départ (moitié, moitié pas de jaloux !).

    1d ou 0d va effectivement faire disparaitre l'un ou l'autre de tes panneaux.

    Si tu as bien un Layout non null dans tes panneaux, ils devraient d'étirer normalement. Sinon place les dans des JScrollPane et les JScrollPane dans le split ca devrait faire ton affaire .... à essayer ...
    le truc c'est que le panneau du bas a une taille fixe...et qu'il n'apparait que de tps en tps...au depart il doit etre caché, lors d'une action, il doit apparaitre et puis se recacher après clic sur un bouton contenu dans ce meme paneau (c'est un peu une popup cachée en gros)
    donc le moit' / moit' c'est pas trop possible au pire faut que je fixe la hauteur, non ?

    et mes panneaux contenuent dans le SplitPane ont des GridBagLayout et quand ils sont en dehors du SpliePane, ils prennent tous l'espace, une fois dedans...il ne s'étire pas

  13. #13
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    j'ai un soucis...j'ai bien compris le principe pour réduire ou pas le JSplitPane, MAIS, a l'initialisation impossible de réduire la zone inférieure du JSplitPane...ca marche dans l'action de bouton...mais a l'initialisation ranafaire...je pige pÔ et vous ?

Discussions similaires

  1. [JSplitPane] J'ai l'impression qu'il y a un bug!!! :)
    Par azdruyel dans le forum Composants
    Réponses: 2
    Dernier message: 02/08/2004, 16h03
  2. [débutant][JSplitPane] Centrage des composants
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 17/06/2004, 19h11
  3. Réponses: 6
    Dernier message: 15/06/2004, 10h26
  4. Réponses: 4
    Dernier message: 21/05/2004, 11h24
  5. Réduction / agrandissement de fenêtres
    Par StarMusic dans le forum Composants VCL
    Réponses: 3
    Dernier message: 09/10/2003, 15h33

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