Проблема JScrollPane - PullRequest
       15

Проблема JScrollPane

2 голосов
/ 18 мая 2011

У меня есть jscrollpane, добавленная в jtabbedpane, а внутри панели jscrollbar у меня есть jpanel.В jpanel у меня есть несколько кнопок, которые я создаю во время выполнения.Моя идея состоит в том, чтобы получить полосу прокрутки, когда размер кнопки, которую я добавляю динамически во время выполнения, увеличивается.Я не могу этого добиться.Размер кнопки увеличивается, и он скрывается, когда размер выходит за пределы поля зрения jpanel.Я увеличиваю размер jpanel и кнопок внутри него с помощью setSize ().Я также использовал jScrollPane2.setViewportView (Jpanel1);установить viewportview.

Dimension t_size = table_button.getSize(); 
table_button.setSize((int)t_size.getWidth(), (int) (t_size.getHeight() + 150));
       Rectangle bounds = global_variables.bottom_panel.getBounds();
       int y_new = (int) (bounds.getY() + 150);
       int x_new = (int) bounds.getX();
       bounds.setLocation(x_new, y_new);
       global_variables.bottom_panel.setBounds(bounds);
floor_plan_admin_single.table_base.setSize((int)floor_plan_admin_single.table_base.getWidth(), (int)floor_plan_admin_single.table_base.getHeight()+150);

Здесь table_button - это кнопка, которую я добавляю динамически, а global_variables.bottom_panel - это панель, которая остается ниже table_button, и когда я увеличиваю высоту table_button, я перемещаю нижнюю панель вниз.floor_plan_admin_single.table_base - это jpanel, добавленный к полосе прокрутки.даже если я изменю высоту панели tat table_base, я не смогу увидеть полосу прокрутки в действии.

1 Ответ

3 голосов
/ 18 мая 2011

При использовании JScrollPane необходимо учитывать несколько моментов.Самый простой способ инициализировать JScrollPanel - передать панель, которую вы хотите сделать прокручиваемой в конструкторе.

JScrollPane scrollPane = new JScrollPane(panel1);

Затем, чтобы установить размеры, вы должны использовать setPreferredSize, а не setSize ().

button.setPreferredSize(new Dimension(120, 120));

Не устанавливайте размер на панели, указанной внутри конструктора JScrollPane.(т.е. панель 1)

...