2015-10-14 5 views
1

Я ищу способ ограничить движение делителя за пределами определенной ширины на левой стороне. Например, я могу использовать setDividerLocation (400), а затем добавить другое свойство с шириной = 500, так что пользователь Swing GUI может перемещать делитель до ширины = 500.Ограничить движение делителя JSplitPane

Я смотрел setLastDividerLocation, однако, что похоже, не работает. Может кто-нибудь, пожалуйста, помогите мне с правильным имуществом, которое мне нужно установить для этого?

Спасибо!

ответ

2

Вы можете добавить PropertyChangeListener к JSplitPane и сбросить местоположение делителя, когда он превышает предел:

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

Это работает! Большое спасибо. –

Смежные вопросы