- 1、頂層容器:
1)頂層容器是進行圖形編程的基礎,一切圖形化的東西都必然包含在頂層容器中
2)在Swing中主要包含三種可以使用的頂層容器:J
JFrame:用來設計類似於windows系統中的窗口形式的應用程序
JDialog:和JFrame類似,只不過JDialog用來設計問話框
JApplet:用來設計可以嵌入在網頁中的Java小程序
- 2、基於Swing的圖形界面至少要有一個頂層容器
1)每個頂層容器都有一個內容面板
2)頂層容器可以同時包含菜單組件和內容面板
JFrame作爲頂層窗口的示意圖 - 3、圖形界面開發設計的流程:
1)創建一個頂層容器JFrame
2)創建一個內容面板(中間容器)
3)創建一個菜單組件
4)將所需的基本組件按照一定的佈局方式添加到內容面板中 - 4、在頂層容器中添加組件
1)在頂層容器中添加組件有兩種場景,若已經存在JFrame的對象frame,需要通過frame來獲取內容面板,然後再增加:
pane = frame.getContentPane();
pane.add(基本組件);
若是新建的JFrame對象,則需要通過創建新的JPane對象,然後再增加
JPanel pane=new JPanel();
pane.add(基本組件);
JFrame frame=new JFrame();
frame.setContentPane(pane);
下面代碼演示在頂層容器中添加內容面板
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test2 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame("添加內容面板測試程序"); // 創建一個頂層容器類對象
frame.setSize(WIDTH,HEIGHT); // 設置頂層容器類對象的大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設置頂層容器類對象的關閉功能
frame.setVisible(true); // 設置頂層容器類的可見性
JPanel contentPane=new JPanel(); // 創建一箇中間容器對象
frame.setContentPane(contentPane); // 將中間容器組件對象contentPane設置爲內容面板
}
}
上述代碼運行結果爲:
下面的代碼繼續演示在內容面板中增加按鈕基本組件的操作
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test3 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame("添加內容面板測試程序"); // 創建一個頂層容器類對象
frame.setSize(WIDTH,HEIGHT); // 設置頂層容器類對象的大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設置頂層容器類對象的關閉功能
frame.setVisible(true); // 設置頂層容器類的可見性
JPanel contentPane=new JPanel(); // 創建一箇中間容器對象
frame.setContentPane(contentPane); // 將中間容器組件對象contentPane設置爲內容面板
JButton ok=new JButton("確定"); // 創建確定按鈕
JButton cacel=new JButton("取消"); // 創建取消按鈕
contentPane.add(ok); // 在內容面板中添加按鈕基本組件
contentPane.add(cacel); // 在內容面板中添加按鈕基本組件
}
}
上述代碼運行結果爲:
- 5、在頂層容器中添加菜單欄
下面通過代碼來演示在頂層容器中增加菜單欄
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Test4 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame();
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("學生管理系統");
JMenuBar menubar=new JMenuBar(); // 添加菜單條組件
frame.setJMenuBar(menubar); // 將菜單條添加到頂層容器中
JMenu menu1=new JMenu("文件"); // 設置菜單組件
JMenu menu2=new JMenu("編輯");
JMenu menu3=new JMenu("視圖");
menubar.add(menu1); // 將菜單組件添加到菜單條組件中
menubar.add(menu2);
menubar.add(menu3);
JMenuItem item1=new JMenuItem("打開"); // 創建菜單項組件
JMenuItem item2=new JMenuItem("保存");
JMenuItem item3=new JMenuItem("打印");
JMenuItem item4=new JMenuItem("退出");
menu1.add(item1); // 將菜單項組件添加到相應的菜單組件中去
menu1.add(item2);
menu1.addSeparator(); // 菜單項之間的分割線組件
menu1.add(item3);
menu1.addSeparator();
menu1.add(item4);
frame.setVisible(true);
}
}
上述代碼運行結果如下:
下面的代碼演示在除了增加菜單組件後,在內容面板中繼續增加組件的
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Test5 {
static final int WIDTH=300;
static final int HEIGHT=200;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame=new JFrame();
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("學生管理系統");
JMenuBar menubar=new JMenuBar(); // 添加菜單條組件
frame.setJMenuBar(menubar); // 將菜單條添加到頂層容器中
JMenu menu1=new JMenu("文件"); // 設置菜單組件
JMenu menu2=new JMenu("編輯");
JMenu menu3=new JMenu("視圖");
menubar.add(menu1); // 將菜單組件添加到菜單條組件中
menubar.add(menu2);
menubar.add(menu3);
JMenuItem item1=new JMenuItem("打開"); // 創建菜單項組件
JMenuItem item2=new JMenuItem("保存");
JMenuItem item3=new JMenuItem("打印");
JMenuItem item4=new JMenuItem("退出");
menu1.add(item1); // 將菜單項組件添加到相應的菜單組件中去
menu1.add(item2);
menu1.addSeparator(); // 菜單項之間的分割線組件
menu1.add(item3);
menu1.addSeparator();
menu1.add(item4);
frame.setVisible(true);
JButton button=new JButton("這是一個測試按鈕組件");
JPanel pane=new JPanel();
pane.add(button);
frame.setContentPane(pane);
}
}
上述代碼運行結果如下: