亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

如何用Java創(chuàng)建一個簡單的Swing應用程序

時間:2024-10-08 19:15:06 java語言 我要投稿
  • 相關推薦

如何用Java創(chuàng)建一個簡單的Swing應用程序

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

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

  A simple Swing program

  1 import javax.swing.*;

  2 import java.awt.*;

  3 public class SwingDemo{

  4 public SwingDemo(){

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

  6 jfrm.setSize(275,100);

  7 jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

  9 jfrm.add(jlab);

  10 jfrm.setVisible(true);

  11 }

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

  13 SwingUtilities.invokeLater(new Runnable(){

  14 public void run(){

  15 new SwingDemo();

  16 }

  17 });

  18 }

  19 }

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

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

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

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

【如何用Java創(chuàng)建一個簡單的Swing應用程序】相關文章:

Java應用程序的基本結構12-03

java應用程序的基本框架03-29

如何創(chuàng)建java包03-27

如何創(chuàng)建java包名03-28

如何用photoshop排版簡單版面11-28

Java入門教程:如何使用一個Java03-17

Java簡單程序編寫03-29

簡單講解Java的Future編程模式方案04-03

用JAVA編寫一個隊列類實例03-30