天天看點

[java桌面應用開發]建構第一個java桌面應用

目錄

第一節 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);
	  
   }
}

           

最後運作效果如下圖

[java桌面應用開發]建構第一個java桌面應用