Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Фиксация разделителя в JSplitPane


Автор: lazycat 16.8.2007, 16:10
Доброго времени суток всем!

Подскажите, пожалуйста, есть ли возможность временно зафиксировать разделитель JSplitPane? В JDK этот вопрос обходится молчанием. Понятно, можно возвращать разделитель на место в обработчике событий, но может быть есть более изящное решение?

Заранее благодарен всем откликнувшимся

Автор: dorogoyIV 16.8.2007, 16:30
private  int dividerLocation 
          Location of the divider, at least the value that was set, the UI may have a different value. 

это не помогает что ли? я не проверял, не знаю... ???

Автор: lazycat 16.8.2007, 16:45
Цитата(dorogoyIV @ 16.8.2007,  16:30)
private  int dividerLocation 
          Location of the divider, at least the value that was set, the UI may have a different value. 

это не помогает что ли? я не проверял, не знаю... ???

А как оно может помочь? Ведь это же обычная переменная. Компонент отображается, ПОЗВОЛЯЕТ перетаскивать разделитель и по мере движения устанавливает dividerLocation и lastDividerLocation. А можно ли как-нибудь ЗАПРЕТИТЬ таскать разделитель?

Автор: fixxer 16.8.2007, 17:10
А зачем сплит если его нельзя таскать?

Автор: dorogoyIV 16.8.2007, 17:19
Цитата(fixxer @  16.8.2007,  17:10 Найти цитируемый пост)
А зачем сплит если его нельзя таскать?

вот именно. 
ну если уж очень надо, то тогда вместе с событием каким то явно устанавливай локацию дивайдера.

Автор: lazycat 16.8.2007, 22:11
Цитата(dorogoyIV @ 16.8.2007,  17:19)
Цитата(fixxer @  16.8.2007,  17:10 Найти цитируемый пост)
А зачем сплит если его нельзя таскать?

вот именно. 
ну если уж очень надо, то тогда вместе с событием каким то явно устанавливай локацию дивайдера.

Большое спасибо fixxer и dorogoyIV за стремление помочь.
Действительно, setLocation в обработчике PropertyChangeListener почти полностью решает проблему. Этот выход очевиден (см. исходное сообщение), но я, признаться,  надеялся, что существует более простое решение, нечто вроде гипотетического метода dividerMoveAllow(false) (кстати, совершенно непонятно, почему подобную возможность не предусмотрели). Но что же, мир, увы, не такой, каким мы хотим видеть его  smile

Автор: fixxer 16.8.2007, 22:28
Цитата(lazycat @ 16.8.2007,  22:11)
но я, признаться,  надеялся, что существует более простое решение, нечто вроде гипотетического метода dividerMoveAllow(false) (кстати, совершенно непонятно, почему подобную возможность не предусмотрели).

Вероятно разработчики задавались тем же вопросом, что и я.

Автор: lazycat 16.8.2007, 22:59
Цитата(fixxer @ 16.8.2007,  22:28)

Вероятно разработчики задавались тем же вопросом, что и я.

А по моему, ситуация, в которой выбранную позицию желательно зафиксировать, вполне естественна.

Автор: Son 21.8.2007, 07:16
а можно вопрос как можно сделать так что б он не уменьшал менее какой то величины? 

Автор: dorogoyIV 21.8.2007, 08:04
ну вот так например:
Код

JPanel jp=new JPanel();
jp.setMinimumSize(new Dimension(100,100));

JSplitPane jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
                                                          jp, new JPanel());

Автор: Son 21.8.2007, 08:35
спасиб 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)