复杂布局
— 单独使用某种布局管理器很难实现相对复杂的布局效果,这往往需要多个布局管理器配合使用;
— 如下面的“猜数字游戏”界面,就是边界布局配合网格布局实现的效果。
public class MainFrame extends JFrame {
private JTextField txtInput; //接受输入的文本框
private JLabel lblMsg; //显示提示信息的标签
private JPanel pnlSouth; //边界布局中,放在南边的面板,用于布局嵌套
private JButton btnGuess, btnAnew, btnExit; //三个按钮
public MainFrame() {
……
pnlSouth = new JPanel(); //创建面板
pnlSouth.setLayout(new GridLayout(1, 3)); //设置面板为1行3列的网格布局
pnlSouth.add(btnGuess); //将三个按钮添加到面板中
pnlSouth.add(btnAnew);
pnlSouth.add(btnExit);
Container me = getContentPane(); //获得窗体的内容面板
me.setLayout(new BorderLayout()); //设置窗体的内容面板为边界布局
me.add(txtInput, BorderLayout.NORTH); //将组件添加到相应位置
me.add(lblMsg, BorderLayout.CENTER);
me.add(pnlSouth, BorderLayout.SOUTH); //将面板添加到边界布局的南面
……
}
}