关于布局管理器
我有三个空间,分别为两个JLabel和一个JButton,
我想让它们排成一行:JLabel1 JButton JLabel2
让JButton居中,两个JLabel分别靠近两个边界,应该怎样写代码(布局)
问题点数:20、回复次数:11Top
1 楼hexiaofeng(java爱好者)回复于 2002-02-01 09:11:19 得分 0
看看
GridBagLayout
GridLayout
这两个类Top
2 楼gdsean(摇滚java)回复于 2002-02-01 09:12:52 得分 0
panel.setLayout(new BorderLayout());
panel.add(JLabel1,BorderLayout.EAST);
panel.add(JLabel1,BorderLayout.WEST);
panel.add(JButton,BorderLayout.CENTER);
Top
3 楼gdsean(摇滚java)回复于 2002-02-01 09:13:30 得分 0
错了,应该是:
panel.setLayout(new BorderLayout());
panel.add(JLabel1,BorderLayout.EAST);
panel.add(JLabel2,BorderLayout.WEST);
panel.add(JButton,BorderLayout.CENTER);Top
4 楼Mike_sun(漠风)回复于 2002-02-01 09:14:52 得分 0
flowlayout(value)Top
5 楼leeke45(蚂蚁)回复于 2002-02-01 09:23:42 得分 0
不指定使用哪种布局把 JLabel 和 JButton 按顺序 add 就行了吧
JPanel pane = new JPanel();
pane.add(JLabel1);
pane.add(JButton);
pane.add(JLabel2);
或者可以用
FlowLayout flowLayout1 = new FlowLayout();Top
6 楼HJJH(Thunderbird)回复于 2002-02-01 09:35:54 得分 0
这些我都用过,但是在窗口缩放大小的时候,所有三个控件总是挤在中间,我要的效果是两个label分别在窗口的边上,而button在中间不便,我不想使用使用GridBagLayout,实在是太麻烦了。Top
7 楼Arzu(大 米)回复于 2002-02-01 09:45:36 得分 20
BorderLayout是就整个平面而言的东西南北中;
FlowLayout在改变大小之后布局会自动调整,
试试这样:
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));
pane.add(JLabel1);
pane.add(JButton);
pane.add(JLabel2);
或者:
JPanel panel = new JPanel();
panel.setLayout(new GirdLayout(1,3,2,2));
pane.add(JLabel1);
pane.add(JButton);
pane.add(JLabel2);
Top
8 楼HJJH(Thunderbird)回复于 2002-02-01 10:47:22 得分 0
谢谢大米,GridLayout的后面两个参数非常有用,给分了。Top
9 楼Arzu(大 米)回复于 2002-02-01 15:50:11 得分 0
共同进步.
addoil, all java programmers.Top




