将JButton对齐到右边

时间:2012-01-23 12:40:22

标签: java swing jpanel jbutton layout-manager

我在java中创建一个界面,我想将按钮对齐到右边。我试过但它不起作用。有人可以告诉我该怎么做吗?

import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Button_Alignment extends JFrame{
    public JPanel header,body,footer;
    public JButton add1;
    public JButton save;
    public Button_Alignment(){
        super("BUTTON");
        GridLayout g1 = new GridLayout(3,1);
        setLayout(g1);
        //////
        header = new JPanel();
        JButton add1 = new JButton("add");
        header.add(add1);
        JButton save = new JButton("save");
        header.add(save);
        //////
        add(header);
        header.setBackground(Color.cyan);
    }
    public static void main(String[] args){
        Button_Alignment ba = new Button_Alignment();
        ba.setSize(400, 400);
        ba.setVisible(true);
    }
}

4 个答案:

答案 0 :(得分:4)

您正在使用3行和单列创建当前布局管理器(GridLayout)。因此,您添加到JFrame的组件将从上到下显示为垂直。更糟糕的是,GridLayout将在所有3个组件中的同样,这意味着您的按钮将在两个方向上伸展,几乎可以肯定您需要的。

我会考虑使用另一种布局管理器。对于简单的布局,我倾向于BorderLayoutFlowLayout。对于更复杂的布局,我倾向于GridBagLayout,尽管还有其他人更喜欢MigLayout

更多信息here

答案 1 :(得分:2)

试试这样:

JButton save = new JButton ("save");
setLayout (new BorderLayout ());
add (save, BorderLayout.EAST);

答案 2 :(得分:0)

快速和脏方式是按下按钮[或立即包装按钮的容器,如果您想在按钮旁边添加其他组件 ]它在一个使用BorderLayout的容器中,并对该按钮[或包装容器]使用BorderLayout.EAST布局约束。

答案 3 :(得分:0)

您将GridLayout设置为JFrame构造函数而不是JPanel(JPanel默认为FlowLayout),我认为

header.setLayout(new GridLayout(3,1));
header.add(add1);
header.add(save);

通知--->但当前GridLayout中的ComponentOrientations从左到右开始,then 3rd. grid is empty

然后只添加JFrame#add(JPanel),在您的情况下

add(header);
相关问题