日期:2014-05-20  浏览次数:20572 次

求大神指点布局管理器问题
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;

public class p268
{
public static void main(String args[])
{
JFrame app=new JFrame("边界布局管理器");
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(360,130);
Container c=app.getContentPane();
c.setLayout(new BorderLayout(3,3));
c.add(new JButton("东"),BorderLayout.EAST);
c.add(new JButton("西"),BorderLayout.WEST);
c.add(new JButton("南"),BorderLayout.SOUTH);
c.add(new JButton("北"),BorderLayout.NORTH);
c.add(new JButton("中"),BorderLayout.CENTER);
app.setVisible(true);
}
}
这个例子的结果是
但是我想让东和西的按钮延长到边框,让南北夹在中间,谁知道如何实现?
布局

------解决方案--------------------
swing 很久没做了。你换个容器试试?

------解决方案--------------------
解决方式有两种,
第一,把布局管理器置为空,直接每个控件使用setBounds();绝对布局去实现,
第二,BorderLayout默认就是这样布局的,如果你想实现你说的方式,那么你可以

public static void main(String args[]) {
JFrame app = new JFrame("边界布局管理器");
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(360, 130);
Container c = app.getContentPane();
c.setLayout(new BorderLayout());

JPanel j=new JPanel();
j.setLayout(new BorderLayout());
j.add(new JButton("北"), BorderLayout.NORTH);
j.add(new JButton("中"), BorderLayout.CENTER);
j.add(new JButton("南"), BorderLayout.SOUTH);


c.add(new JButton("东"), BorderLayout.EAST);
c.add(new JButton("西"), BorderLayout.WEST);
c.add(j, BorderLayout.CENTER);

app.setVisible(true);
}