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);
}