當前位置:學者齋 >

計算機 >java語言 >

如何用Java創建一個簡單的Swing應用程序

如何用Java創建一個簡單的Swing應用程序

引導語:Swing是一組Java程序元件,它能夠創建圖象用户接口(GUI)元件,如按鈕和滾動條,它們獨立於特定操作系統的開窗口系統。以下是本站小編分享給大家的如何用Java創建一個簡單的Swing應用程序,希望大家喜歡!

如何用Java創建一個簡單的Swing應用程序

先給出一段代碼,這是一個很簡單的Swing程序,然後在對程序內容作詳細講述。

A simple Swing program

1 import g.*;

2 import .*;

3 public class SwingDemo{

4 public SwingDemo(){

5 JFrame jfrm=new JFrame("A Simple Swing Application");

6 ize(275,100);

7 efaultCloseOperation(_ON_CLOSE);

8 JLabel jlab=new JLabel("This is a text label.");

9 (jlab);

10 isible(true);

11 }

12 public static void main(String[] args){

13 keLater(new Runnable(){

14 public void run(){

15 new SwingDemo();

16 }

17 });

18 }

19 }

Swing是用來彌補AWT的不足的,但是不能取代它,所以Swing GUI程序開頭都是包含進來swing包和awt包。GUI程序不同於傳統的控制枱程序,它可是有個很形象的窗口呈現給用户的,所以實現出來顯得很親切,我們從實現出來的這個窗口來推理下代碼應該包括什麼內容。窗口是windows裏最常見的了,一個窗口裏有標題欄工具欄按鈕等等一系列的組件,這些組件不是漂浮於空中的,而是生存在這個窗口裏的,這個窗口對應着Swing程序裏的容器這個概念。大體上就是這樣的過程:先設計出容器,再設計出組件,然後把組件添加到容器中併合理的佈局,佈局完全是美觀的需要,這樣就寫出來一個SwingGUI程序了。注意這裏的容器和組件的關係看着很簡單,就是容器為根,它可以容納組件。然而實際的java類庫裏不是這麼看待二者的,容器和組件渾然一體的,容器也是一種組件,容器內也可以再放容器,簡單的説就是組件套組件,可以套組件的組件就叫容器了。這種包含層次的結構要求其頂部必須是一個頂級容器。Swing定義了4種頂級容器:JFrame,JApplet,JWindow,JDialog。這些容器繼承自AWT類的`Component和Container,説它們頂級是在 Swing的框架內説的,放到AWT中還是小弟,當不了老大,不過在Swing組件庫中確實一手遮天,表現在頂層容器不包含在任何其他的容器中並且每個包含層次必須從頂層容器開始,這4個容器稱作重量級容器。除了這4個頂級容器,其它的Swing組件都是從JComponent類派生的。例如用於標籤的類 JLabel,用於按鈕的類JButton,用於複選框的類JCheckBox。既然有重量級容器,同樣就有輕量級容器,如 JPanel,JScrollPane,JRootPane。這些當然也是派生自JComponent類了。它們經常用於組織和管理一組相關的組件。

關於Swing組件的基本體系搞懂了,接下來就考慮組件怎麼加到容器裏,代碼第9行告訴了我們答案,看起來確實很簡單,再考慮一個問題,如果我加了很多組件進來,那麼這些組件怎麼擺放呢,這段代碼只加了一個,看不出來問題,如果加了一堆組件進來會不會窗口顯得很凌亂呢。這就需要佈局管理器來幫忙了。代碼中看不到佈局管理器對象,這是因為採用了默認的BorderLayout,注意這裏的默認是針對JFrame而言的,不同的頂級容器的默認佈局管理器可能不一樣。佈局管理器多數由AWT提供的,Swing也提供了自己的幾種,它們都是實現了LayoutManager接口的實例(某些還會實現 LayoutManager2接口)。

現在組件放到容器裏了,並且也合理的佈局了,還遺漏了一些問題,比如説這些組件(包括容器)該起個名字吧,不過這個不用操心,因為生成這個組件對象的時候就往構造函數裏傳了參數用來起名字了。還有個問題是容器的大小,假如容器芝麻的大小你卻往裏放個西瓜大的組件,根本顯示不出來嘛。所以容器是要定製大小的,setSize()可以滿足需要,一般的組件是不需要這個函數來定製大小的,大小都是隨容器變化的,所以芝麻大小的容器是不會塞一個西瓜大的組件的,但是卻是個比芝麻還小的組件,和顯示不出來區別不大。

到了這裏感覺還缺點什麼,對了,還缺事件的處理機制,比如説點關閉按鈕窗口會怎麼樣。這裏簡單的調用一個方法,setDefaultCloseOperation(),傳進的一個整型參數好比一個遙控器上的數字鍵,決定了這個操作的行為。事件的處理機制隱藏於這個方法的實現中。第10行的setVisible()作用是顯示框架,初學者可能會忘記,不過這幾乎是GUI代碼的必備語句。最後的main方法看着有點不知所云,簡單解釋下,在所有情況下,Swing GUI必須通過使用invokeLater()在事件調度線程上創建。這行代碼硬記住就行了。從語法上説用了一個匿名類。

標籤: JAVA swing 應用程序
  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-hk/jsj/java/1vjkjm.html