目錄
第一節 java桌面應用開發系統環境要求
第二節 AWT與Swing
第三節 容器
第四節 執行個體示範&&代碼
01 java桌面應用開發系統環境要求
原生Java環境,無需額外配置
02 AWT與Swing
圖形使用者界面(Graphical User Interface,GUI)是大多數程式不可缺少的部分,采用圖形方式顯示的計算機操作使用者界面,Java的圖形使用者界面由各種元件構成,在java.awt包和javax.swing包中定義了多種用于建立圖形使用者界面的元件類。設計圖形使用者界面時一般有3個步驟,分别是選取元件、設計布局及響應事件。
早期的JDK版本中提供了Java抽象視窗工具集(Abstract Window Toolkit,AWT),為程式員建立圖形使用者界面提供支援。後來的JDK版本中,又提供了功能更強的Swing。AWT元件定義在java.awt包中。Swing元件定義在javax.swing包中。AWT和Swing包含了部分對應的元件,例如,标簽和按鈕,在java.awt包中分别用Label和Button表示,而在javax.swing包中,則分别用JLabel和JButton表示,多數Swing元件以字母“J”開頭。Swing元件與AWT元件最大的不同是Swing元件在實作時不包含任何本地代碼,是以Swing元件可以不受硬體平台的限制,而具有更多的功能。
基于AWT的界面可能會因運作平台的不同有略有差異,而基于Swing的界面在任何平台上的顯示效果都是一緻的。不包含本地代碼的Swing元件被稱為“輕量級”元件,而包含本地代碼的AWT元件被稱為“重量級”元件。
當“重量級”元件與“輕量級”元件一同使用時,如果元件區域有重疊,則“重量級”元件總是顯示在上面。在Java 2平台上推薦使用Swing元件。Swing元件比AWT元件擁有更多的功能,例如,Swing中的按鈕和标簽不僅可以顯示文本資訊,還可以顯示圖示,或同時顯示文本和圖示;大多數Swing元件都可以添加和修改邊框;Swing元件的形狀是任意的,而不僅局限于長方形。Java的圖形使用者界面由各種元件構成,元件是構成圖形使用者界面的基本元素。
例如,按鈕(JButton)、文本輸入框(JTextField)、标簽(JLabel)等都是元件。架構(Frame)、面闆(Panel)等元件稱為容器(Container),它們是特殊的元件,可以包含元件,各種元件(包括容器)可以通過add( )方法添加到容器中。Java語言為每種元件都定義了類,通過這些類或是它們的子類可以建立元件對象。通過相關方法可以對界面進行控制及響應。
03 容器
元件可以分為容器元件和非容器元件。所謂容器元件是指可以包含其他元件的元件,又分為頂層容器和一般用途容器。而非容器元件則必須要包含在容器中。顯示在螢幕上的所有元件都必須包含在某個容器中,有些容器可以嵌套,在這個嵌套層次的最外層,必須是一個頂層容器。此外,還有一些容器是不能當作頂層容器的,例如,Jpanel和JscrollPane。Java為所有容器類定義了父類Container,容器的共有操作都定義在Container類中。
頂層容器
Swing中提供了4種頂層容器,分别為JFrame、JApplet、JDialog和JWindow。JFrame是一個帶有标題行和控制按鈕(最小化、恢複/最大化、關閉)的獨立視窗,有時稱為架構,建立應用程式時需要使用JFrame。建立小應用程式時使用JApplet,它被包含在浏覽器視窗中。建立對話框時使用JDialog。JWindow是一個不帶有标題行和控制按鈕的視窗,通常很少使用。
JFrame類常用的構造方法有以下幾種。
•JFrame( ):構造一個初始時不可見、無标題的新架構窗體。
•JFrame(String title):建立一個初始時不可見、具有指定标題的新架構窗體。
JFrame類中定義了一些相關方法,另外也從祖先類中繼承了一些方法。常用的方法有以下幾種。
•void setBounds(intx,inty,intwidth,int height):移動并調整架構大小。左上角位置的橫縱坐标分别由x和y指定,架構的寬高分别由width和height指定。
•void setSize(intwidth,int height):設定架構的大小,寬度是width,高度是height。
•void setBackground(Color bg):使用顔色bg設定架構的背景色。
•void setVisible(booleanaFlag):設定架構可見或不可見。
•void pack( ):調整架構的大小,以适合其子元件的首選大小和布局。
•void setTitle(String title):設定架構的标題為字元串title。
•Container getContentPane( ):傳回此架構窗體的内容窗格對象。
•void setLayout(LayoutManager manager):設定布局管理器。
04 執行個體示範&&代碼
執行個體代碼如下
package com.java.pc;
import java.awt.BorderLayout;
import javax.swing.*;
public class HelloWorld {
public static void main(String args[])
{
JFrame jframe=new JFrame("Demo");
JButton jbutton=new JButton("Hello World");
jframe.getContentPane().add(jbutton,BorderLayout.CENTER);
jframe.pack();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(jframe.EXIT_ON_CLOSE);
}
}
最後運作效果如下圖