swing學習一(swing介紹、swing樣例、佈局管理器)

圖形用戶界面開發(gui)java

在學習swing前,咱們須要瞭解這樣幾個概念:awt、swing、swt、Jface。jvm

sun公司提供了一個跨平臺GUI開發工具包awt(抽象窗口工具箱Abstract Window Toolkit)。ide

sun公司又提供了swing,解決swt中存在的lcd(本地化)問題。函數

IBM爲了解決swing耗內存的問題,建立了新的gui庫swt。工具

IBM在swt的基礎上開發了更強大的JFace。佈局

 

Swing組件分類:學習

一、頂層容器:JFrame、JApplet、JDialog開發工具

二、中間層容器:JPanel、JScrollPane、JSplitPane、JToolBarui

三、特殊中間層容器:JIternalFrame、JLayeredPane、JRootPanethis

四、基本控制容器:JButton、JComboBox、JList、JMenu、JSlider、JTestField

五、不可編輯信息顯示容器:JLable、JProgressBar

六、可編輯信息顯示容器:JTable、JFileChooser、JTree

 

一個swing例子Swing.java,顯示helloWorld。

package com.test.swing;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Swing extends JFrame{

    //一個組件
    public JLabel label = null;
    //JPanel是一箇中間層容器類,能夠添加其餘組件。
    public JPanel jPanel = null;
    
    public Swing(){
        //給窗體設置標題
        this.setTitle("helloWorld!");
        //設置大小,按像素計數
        this.setSize(300, 300);
        //設置窗口初始位置
        this.setLocation(100, 200);
        //顯示
        this.setVisible(true);
        //設置當關閉窗口時,jvm也關閉
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
        
        
        jPanel = new JPanel();
        label = new JLabel("helloWorld!");
        //將組件添加到中間層組件。
        jPanel.add(label);
        //將中間層組件設置爲頂層組件的內容面板。
        this.setContentPane(jPanel);
    }
    /**
     * @main
     */
    public static void main(String[] args) {
        Swing swing = new Swing();
    }

}

 

佈局管理器:

組件在容器中的位置和大小是由佈局管理器來決定的,全部的組件都會使用一個佈局管理器,經過它來自動進行佈局管理。

java提供五種佈局管理器:流式佈局管理器(FlowLayout)、邊界佈局管理器(BorderLayout)、網格佈局管理器(GridLayout)、卡片佈局管理器(CardLayout)、網格包佈局管理器(GridBagLayout)

 

流式佈局:按順序從左到右,可指定對齊方式,左對齊右對齊居中對齊等。

邊界佈局:將容器簡單的劃分爲東西南北中五個區域,中間區域最大,不是五個部分都必須添加。

網格佈局:將容器劃分爲多列,組件被依次填充到每一個網格中,從左上角開始。

JFrame、JDialog對話框組件你默認邊界佈局。

代碼編寫步驟:

一、繼承JFrame

二、定義你須要的組件

三、建立組件(構造函數)

四、添加組件

五、對窗體進行設置

六、顯示窗體

樣例:

this.add(label1, BorderLayout.EAST);
this.add(label2, BorderLayout.NORTH);

 指定佈局管理器:

jPanel.setLayout(new BorderLayout());

 流式佈局管理器:

jPanel.setLayout(new FlowLayout(FlowLayout.CENTER));

 拆分窗格:

JSplitPane jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jPanel,label1);        
相關文章
相關標籤/搜索