我在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);
}
}
答案 0 :(得分:4)
您正在使用3行和单列创建当前布局管理器(GridLayout
)。因此,您添加到JFrame
的组件将从上到下显示为垂直。更糟糕的是,GridLayout
将在所有3个组件中的同样,这意味着您的按钮将在两个方向上伸展,几乎可以肯定不您需要的。
我会考虑使用另一种布局管理器。对于简单的布局,我倾向于BorderLayout
或FlowLayout
。对于更复杂的布局,我倾向于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);