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


Автор: Su_ 15.6.2010, 20:08
Всем доброго вечера..

Не могу понять в чем проблема..

У меня есть JPanel , на ней по нажатию кнопки добавляется кнопка по принципу
Код

jPanel_home.setLayout(new GridLayout(0, 1));


Смотрю как получается, кнопки появляются как надо , одна над другой.

Теперь я захотел , что если количество кнопок превышает размеры окна появился скролинг. 
Создал JScrollPane  перетащил туда свой JPanel . 
Теперь кнопки стали растягиваться по всей высоте JSrollPane !?Как этого избежать.. Т.е Jpanel удлиняется до поры до времени, потом врубается скролл.

Я пытался решить вопрос через setPerfectSize , но не получилось..
Т.е при добавление новой кнопками увеличивать JPanel_home
user posted image
Слева без JScrollPane , справа с JScrollPane

Автор: pathfinder 15.6.2010, 20:52
Это нормальное поведение GridLayout.

Для того что-бы кнопки не "расплывались" нужно поместить jPanel_home в панель с менеджером расположения FlowLayout.
Код

...
JPanel flowPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
flowPanel.add(jPanel_home);
jScrollPane.setViewportView(flowPanel);

Автор: Su_ 15.6.2010, 21:20
Панель в Панель, не додумался) Спасибо!

Автор: Su_ 15.6.2010, 22:20
Можно еще вопрос в этой теме.

Как прижать Jpanel к левому , верхнему углу при появление Скроллинга. Или как скролинг вправо прикрепить ,что бы он накладывался на панельку?


Момент добавление я отловил
Код

  private void jPanel_homeComponentResized(java.awt.event.ComponentEvent evt) {
   jTextArea_info.append(""+jScrollPane3.getVerticalScrollBar().isShowing()+" emo \n");

    }


а то так:

user posted image

Автор: pathfinder 15.6.2010, 22:59
Насколько я понял речь идет об отступах слева и сверху, тогда вот так:

Код

... = new FlowLayout(FlowLayout.CENTER, 0, 0); // отступы между компонентами


что-бы scrollBar при появлении не перекрывал полезное пространство, достаточно добавить к preferredSize самой широкой кнопки размер scrollBar-а(имеется ввиду до добавления оной на панель).

Автор: Su_ 16.6.2010, 01:22
Спасибо, теперь то что надо!)

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