JScrollPane问题

时间:2011-05-17 21:08:47

标签: java swing jpanel jscrollpane

我有一个jscrollpane添加到jtabbedpane并且在jscrollbar窗格内我有一个jpanel。在jpanel中,我有几个按钮,我在运行时创建。我的想法是,当我在运行时动态添加的按钮大小增加时,它会得到一个滚动条。我不能让这件事发生。按钮大小增加,当大小超出jpanel的视图时,它会隐藏。我正在使用setSize()增加jpanel及其中的按钮的大小。我还使用了jScrollPane2.setViewportView(Jpanel1);设置视口视图。

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的高度时,我正在向下移动bottom_panel。 floor_plan_admin_single.table_base是添加到滚动条的jpanel。即使我改变了tat table_base面板的高度,我也看不到滚动条的作用。

1 个答案:

答案 0 :(得分:3)

使用JScrollPane时需要注意几点。初始化JScrollPanel的最简单方法是在构造函数中传递要使其可滚动的面板。

JScrollPane scrollPane = new JScrollPane(panel1);

然后,要设置大小,您必须使用setPreferredSize,而不是setSize()。

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

不要在JScrollPane的构造函数内给出的面板上设置大小。 (即panel1)