JFrame、JDialog默认布局管理器
- 窗体(对话框)的默认布局管理器为边界布局管理器
- 向其中添加组件时,如没有指定位置,则会占满整个窗体(对话框)
- 也可以设置布局:setLayout(null):这种情况下,需要手动设置各个组件的位置
Demo01–手动设置组件位置
import javax.swing.*;
import java.awt.*;
public class DemoLayout {
public static void main(String[] args) {
JFrame jFrame = new JFrame("默认布局窗体");
jFrame.setLayout(null);
JButton jButton1 = new JButton("button1");
JButton jButton2 = new JButton("button2");
jButton1.setBounds(10,10,100,20);
jButton2.setBounds(10,40,100,20);
jFrame.add(jButton1);
jFrame.add(jButton2);
//设置窗体背景色
jFrame.setBackground(Color.CYAN);
//设置窗体大小
jFrame.setSize(400,400);
//设置窗体可见
jFrame.setVisible(true);
//设置窗体关闭方式
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
Demo01运行结果如下
Demo02–使用默认布局
import javax.swing.*;
import java.awt.*;
public class DemoLayout {
public static void main(String[] args) {
JFrame jFrame = new JFrame("默认布局窗体");
JButton jButton1 = new JButton("button1");
jFrame.add(jButton1);
//设置窗体背景色
jFrame.setBackground(Color.CYAN);
//设置窗体大小
jFrame.setSize(400,400);
//设置窗体可见
jFrame.setVisible(true);
//设置窗体关闭方式
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
Demo02运行结果如下
Demo03–使用BorderLayout设置组件位置
import javax.swing.*;
import java.awt.*;
public class DemoLayout {
public static void main(String[] args) {
JFrame jFrame = new JFrame("默认布局窗体");
// jFrame.setLayout(null);
JButton jButton1 = new JButton("button1");
JButton jButton2 = new JButton("button2");
//设置组件的位置
jFrame.add(jButton1,BorderLayout.NORTH);
jFrame.add(jButton2,BorderLayout.CENTER);
jFrame.add(BorderLayout.SOUTH,new JButton("button3"));
//设置窗体背景色
jFrame.setBackground(Color.CYAN);
//设置窗体大小
jFrame.setSize(400,400);
//设置窗体可见
jFrame.setVisible(true);
//设置窗体关闭方式
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
Demo03运行结果如下
- 左边和右边区域默认被其它组件填充
注意
- 使用JFrame对象直接调用add()方法添加组件和使用getContentPane()获取一个Container对象来添加组件结果是一样的,Java1.5以后,两种操作方式都是调用同一个add方法
- add方法如下所示
public void add(Component comp, Object constraints) {
addImpl(comp, constraints, -1);
}