2015-10-14 2 views
1

Je cherche un moyen de limiter le mouvement du diviseur au-delà d'une certaine largeur du côté gauche. Par exemple, je peux utiliser setDividerLocation (400) puis ajouter une autre propriété avec width = 500, afin que l'utilisateur de l'interface graphique Swing puisse déplacer le diviseur jusqu'à la largeur = 500.Restreindre le mouvement du diviseur JSplitPane

Je regardais setLastDividerLocation, cependant, ne semble pas fonctionner. Quelqu'un peut-il m'aider s'il vous plaît avec la propriété correcte que je dois définir pour cela?

Merci!

Répondre

2

Vous pouvez ajouter un PropertyChangeListener au JSplitPane et réinitialiser l'emplacement du diviseur lorsqu'il dépasse la limite:

splitPane.addPropertyChangeListener("dividerLocation", new PropertyChangeListener() 
{ 
    @Override 
    public void propertyChange(PropertyChangeEvent e) 
    { 
     int location = ((Integer)e.getNewValue()).intValue(); 
     System.out.println(location); 

     if (location > 400) 
     { 
      JSplitPane splitPane = (JSplitPane)e.getSource(); 
      splitPane.setDividerLocation(400); 
     } 
    } 
}); 
+0

qui fonctionne! Merci beaucoup. –