如何在面板中心设置组件(比如按钮)?
我使用Flowlayout
布局约束作为中心,但我在面板的顶部中心位置获得按钮。
问问题
8432 次
3 回答
10
这可以GridBagLayout
使用AVD 1或BoxLayout
. 有关示例代码,请参阅此答案。
就我个人而言,我会为此使用 GBL,因为需要更少的代码行来让组件布局和显示在屏幕上(以父容器为中心)。
- 我不明白为什么这个答案没有得到更多的赞成票,但除此之外..
于 2012-02-01T04:25:05.737 回答
5
使用GridBagLayout
而不是 FlowLayout。
JPanel panel=new JPanel();
panel.setLayout(new GridBagLayout());
panel.add(new JButton("Sample")); // will use default value of GridBagConstraints
于 2012-02-01T04:07:36.837 回答
0
使用null
布局并设置按钮的边界,如下所示:
// assuming you're extending JPanel
private JButton button; // data field
...
this.setLayout(null);
this.addComponentListener(new ComponentAdapter(){
public void componentResized(ComponentEvent e){
setButtonBounds();
}
});
private void setButtonBounds(){
int bw = 90; // button width
int bh = 30; // button height
int w = getWidth();
int h = getHeight();
button.setBounds((w - bw) / 2, (h - bh) / 2, bw, bh);
}
如果您开始获得许多按钮或复杂的布局,请考虑使用MigLayout。
于 2012-02-01T04:09:40.220 回答