JAVA Swing簡單入門小程序

1.Swing容器

頂層容器

在Swing中有三種可以使用的頂層容器 ,分別是JFrame , JDialog , JApplet

1.JFrame : 用於框架窗口的類,此窗口帶有邊框,標題,關閉和最小化窗口的圖標,帶GUI的應用程序至少使用一個框架窗口
2.JDialog :用於對話框的類
3.JApplet : 用於使用Swing組件的java Applet類

中間容器

中間容器時容器組件的一種 ,也可以承載其他組件 ,單中間容器不能獨立顯示 ,必須依賴於其他的頂層容器 , 常見的中間容器有Jpanel , JScrollpane , JTabbedPane和JToolBar

JPanel : 表示一個普通面板 ,是最靈活,最常用的中間容器
JScrollPane : 與JPanel類似 , 但他可在大的組件或可擴展組件周圍提供滾動條
JTabbedPane : 表示選項卡面板,可以包括多個組件,但一次只顯示一個組件 ,用於可在組件之間方便的切換
JToolBar : 表示工具欄 ,按行或列排列一組組件(通常是按鈕).

2.JFrame窗口

JFrame類的常用構造方法如下

JFrame() : 構造一個初始時不可見的新窗體
JFrame(String title) : 創建一個具有title指定標題的不可見新窗體

當創建一個 JFrame 類的實例化對象後,其他組件並不能夠直接放到容器上面,需要將組件添加至內容窗格,而不是直接添加至 JFrame 對象。示例代碼如下:

frame.getContentPane().add(b);
方法名稱 概述
getContentPane() 返回此窗體的 contentPane 對象
getDefaultCloseOperation() 返回用戶在此窗體上單擊“關閉”按鈕時執行的操作
setContentPane(Container contentPane) 設置 contentPane 屬性
setDefaultCloseOperation(int operation) 設置用戶在此窗體上單擊“關閉”按鈕時默認執行的操作
setDefaultLookAndFeelDecorated (boolean defaultLookAndFeelDecorated) 設置 JFrame 窗口使用的 Windows 外觀(如邊框、關 閉窗口的 小部件、標題等)
setIconImage(Image image) 設置要作爲此窗口圖標顯不的圖像
setJMenuBar( JMenuBar menubar) 設置此窗體的菜單欄
setLayout(LayoutManager manager) 設置 LayoutManager 屬性

JFrame小實驗

package com.nantian.login;

import javax.swing.*;
import java.awt.*;

/**
 * @Author 
 * @Date 2020/6/2 9:47
 * @Version 1.0
 */
class JFrameDemo extends JFrame {

   public JFrameDemo(){
       setTitle("張氏管理集團");
       setSize(400,200);
       /*設置窗口是否可以關閉*/
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       /*創建一個標籤*/
       JLabel jl = new JLabel("朕 ,必將無敵於天下");
       /*獲取當前窗口的內容窗格*/
       Container c = getContentPane();
       c.add(jl);
       setVisible(true);
   }
    public static void main(String[] args) {
       /*創建一個實例化對象*/
        new JFrameDemo();
    }

}

3.JPanel面板

JPanel是一種中間層容器 , 他能容納組件並將組件結合在一起 , 但他本身必須添加到其他容器中使用 , JPanel類的構造如下

JPanel() : 使用默認的佈局管理器創建新面板 ,默認的佈局管理器爲FlowLayout
JPanel(LayoutManagerLayout layout) : 創建指定佈局管理器的JPanel對象

JPanel類的常用方法

方法名及返回值類型 說明
Component add(Component comp) 將指定的組件追加到此容器的尾部
void remove(Component comp) 從容器中移除指定的組件
void setFont(Font f) 設置容器的字體
void setLayout(LayoutManager mgr) 設置容器的佈局管理器
void setBackground(Color c) 設置組件的背景色

小案例

public class JPanelDemo {
    public static void main(String[] args) {
        /*創建一個JFrame對象*/
        JFrame jf = new JFrame("張氏JAVA帝國集團");
        jf.setBounds(300,100,400,200);
        JPanel jp = new JPanel();
        JLabel jl = new JLabel("張氏帝國董事長");
        //設置背景色
        jp.setBackground(Color.green);
        jp.add(jl);
        jf.add(jp);
        //設置窗口可見
        jf.setVisible(true);
    }
}
這段代碼的思路 : 創建三個對象
JFrame jf 最大的對象
JPanel jp 中間的對象
JLabel jL 最小的對象 
把最小的對象添加到中間的對象
中間的對象添加到最大的對象
jp.add(jL)     jf.add(jp)
需要設置一下最大對象的大小以及位置( jf.setBounds(300,100,400,200);)
設置一下中間對象的北京顏色 (jp.setBackground(Color.green);)
創建最小的對象的時候即可設置內容(JLabel jl = new JLabel("張氏帝國董事長張帥");)
最後額外設置一下窗體的可見性(jf.setVisible(true);)

4.邊框佈局管理器

BorderLayout (邊框佈局管理器)是window ,JFrame 和JDialog的默認佈局管理器 ,東南西北中

構造方法 :

BorderLayout佈局管理器的構造方法如下所示 :

BorderLayout() : 創建一個Border佈局 ,組件之間沒有間隙 
BorderLayout(int hgap,int vgap) ; 創建一個Border佈局 ,其中hgap表示組件之間的橫向間隔 ,vgap表示組件之間的縱向間隔 , 單位是像素 

小案例

public class BorderLayoutDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("張氏帝國第三分集團");
        /*首先來創建一個Frame窗口*/
        frame.setSize(400,200);
        /*爲Frame窗口設置佈局爲BorderLayout*/
        frame.setLayout(new BorderLayout());
        JButton button1 = new JButton("上");
        JButton button2 = new JButton("左");
        JButton button3 = new JButton("中");
        JButton button4 = new JButton("右");
        JButton button5 = new JButton("下");
        frame.add(button1,BorderLayout.NORTH);
        frame.add(button2,BorderLayout.WEST);
        frame.add(button3,BorderLayout.CENTER);
        frame.add(button4,BorderLayout.EAST);
        frame.add(button5,BorderLayout.SOUTH);
        frame.setBounds(300,200,600,300);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
代碼總結 :首先創建需要的組件 JFrame以及五個Button按鈕 
設置一下frame的佈局方式   frame.setLayout(new BorderLayout());
然後把五個按鈕分別添加到frame裏,並且設置佈局方式
最後在設置一下就frame的窗體可以關閉 ,以及顯現窗體 

5.流式佈局管理器

FlowLayout 佈局管理器的構造方法如下

FlowLayout():創建一個佈局管理器,使用默認的居中對齊方式和默認 5 像素的水平和垂直間隔。
FlowLayout(int align):創建一個佈局管理器,使用默認 5 像素的水平和垂直間隔。其中,align 表示組件的對齊方式,對齊的值必須是 FlowLayoutLEFT、FlowLayout.RIGHT 和 FlowLayout.CENTER,指定組件在這一行的位置是居左對齊、居右對齊或居中對齊。
FlowLayout(int align, int hgap,int vgap):創建一個佈局管理器,其中 align 表示組件的對齊方式;hgap 表示組件之間的橫向間隔;vgap 表示組件之間的縱向間隔,單位是像素。

創建一個窗口 ,設置標題爲"XXX" ,使用FlowLayout類對窗口進行佈局 ,向容器中添加九個按鈕 ,並且設置橫向和縱向的間隔都爲20像素 , 具體實現代碼如下 :

public class FlowLayoutDemo {

    public static void main(String[] args) {
        /*創建Frame窗口*/
        JFrame jFrame = new JFrame("張氏第4集團軍");
        /*創建面板*/
        JPanel jPanel = new JPanel();
        /*創建按鈕*/
        JButton button1 = new JButton("1");
        JButton button2 = new JButton("2");
        JButton button3 = new JButton("3");
        JButton button4 = new JButton("4");
        JButton button5 = new JButton("5");
        JButton button6 = new JButton("6");
        JButton button7 = new JButton("7");
        JButton button8 = new JButton("8");
        JButton button9 = new JButton("9");
        /*面板中添加按鈕*/
        jPanel.add(button1);
        jPanel.add(button2);
        jPanel.add(button3);
        jPanel.add(button4);
        jPanel.add(button5);
        jPanel.add(button6);
        jPanel.add(button7);
        jPanel.add(button8);
        jPanel.add(button9);
        /*向JPanel添加FlowLayout佈局管理器, 將組件鍵的橫向和縱向間隙都設置爲20像素 */
        jPanel.setLayout(new FlowLayout(FlowLayout.LEADING,20,20));
        //設置背景色
        jPanel.setBackground(Color.RED);
        jFrame.add(jPanel);
        jFrame.setBounds(300,200,300,150);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章