如何使用java动态重新排列gridlayout中的项目?

时间:2011-09-14 16:25:50

标签: java swing user-interface dynamic grid-layout

我需要重新排列GridLayout中的项目,这样当动态创建JButton时,页脚(即JLabel)会停留在网格的底部,并且动态创建的按钮就在页脚的正上方。

这可能吗?如果可以,我可以看一个例子吗?

我的网格目前是

new GridLayout(intIndex, 1);

每次创建动态元素时,intIndex都会递增。

2 个答案:

答案 0 :(得分:4)

由于它是一个页脚,您可能希望使用BorderLayout并使用BorderLayout.PAGE_END将页脚放在底部。然后将GridLayout的组件放在BorderLayout.CENTER的中心位置。这样,您的页脚将始终保持在底部,并且不会干扰内容,您现在可以自由更改以使用任何布局管理器而不会影响页脚。

如果你的页脚跨越整个底部,这应该是一个很好的解决方法,但是如果你想在底角做一些小的页脚,那么它会有点困难,但无论哪种方式我建议尝试将页脚与内容分开。

答案 1 :(得分:1)

我认为我可以添加更多内容,但接受一个答案。

布局有两个界面:LayoutManagerLayoutManager2。第二个延伸第一个。因此,所有布局类都继承自LayoutManager

现在,LayoutManager2允许您根据某些约束排列组件。例如,在Shakedown的回答中,BorderLayout.CENTERBorderLayout的约束。

但是,那些仅实现LayoutManager的布局不接受特定组件的约束。 GridLayout就是这样的布局。它将从左上角开始添加组件并继续向右移动,并在一行已满时转到下一行。

您可能对GridBagLayout感兴趣。