我需要重新排列GridLayout
中的项目,这样当动态创建JButton
时,页脚(即JLabel
)会停留在网格的底部,并且动态创建的按钮就在页脚的正上方。
这可能吗?如果可以,我可以看一个例子吗?
我的网格目前是
new GridLayout(intIndex, 1);
每次创建动态元素时,intIndex
都会递增。
答案 0 :(得分:4)
由于它是一个页脚,您可能希望使用BorderLayout
并使用BorderLayout.PAGE_END
将页脚放在底部。然后将GridLayout
的组件放在BorderLayout.CENTER
的中心位置。这样,您的页脚将始终保持在底部,并且不会干扰内容,您现在可以自由更改以使用任何布局管理器而不会影响页脚。
如果你的页脚跨越整个底部,这应该是一个很好的解决方法,但是如果你想在底角做一些小的页脚,那么它会有点困难,但无论哪种方式我建议尝试将页脚与内容分开。
答案 1 :(得分:1)
我认为我可以添加更多内容,但接受一个答案。
布局有两个界面:LayoutManager
和LayoutManager2
。第二个延伸第一个。因此,所有布局类都继承自LayoutManager
。
现在,LayoutManager2
允许您根据某些约束排列组件。例如,在Shakedown的回答中,BorderLayout.CENTER
是BorderLayout
的约束。
但是,那些仅实现LayoutManager
的布局不接受特定组件的约束。 GridLayout
就是这样的布局。它将从左上角开始添加组件并继续向右移动,并在一行已满时转到下一行。
您可能对GridBagLayout
感兴趣。