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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 é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 ?

  4. #4
    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.

  5. #5
    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

    ++

  6. #6
    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

  7. #7
    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);

  8. #8
    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 ...

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