2011-05-17 62 views
2

我有一个jscrollpane添加到jtabbedpane和jscrollbar窗格内我有一个jpanel。在jpanel中,我有几个按钮,我在运行时创建。我的想法是,当我在运行时动态添加的按钮大小增加时,它会得到一个滚动条。我无法做到这一点。当尺寸超出jpanel的视图时,按钮尺寸会增加并隐藏。我使用setSize()增加jpanel的大小和它内部的按钮。我也使用jS​​crollPane2.setViewportView(Jpanel1);设置viewportview。JScrollPane问题

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

+0

你可以使用一些相关的代码吗? – MByD 2011-05-17 21:12:32

+0

LayoutManager和PreferredSize for JPanel(MiGLayout,是不是它)对于任何更好的hepl而言都超出了需要用您的代码编辑您的帖子,以显示您的... – mKorbel 2011-05-17 21:16:26

+0

为了更快地获得更好的帮助, [SSCCE](http://pscode.org/sscce.html)。顺便说一句 - 'JScrollBar窗格'的意思是'JScrollPane'? SSCCE善于回答这样的问题。 – 2011-05-17 21:18:09

回答

3

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

JScrollPane scrollPane = new JScrollPane(panel1); 

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

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

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