天天看點

Java Swing入門基礎

  1.前言:

  當我們學習過了java中的基本文法,并且熟悉java的面向對象基礎以後,我們就可以開始簡單的Swing程式的設計,用過Vb的朋友可能會被它的簡單的設計使用者界面方法所吸引,隻需要拖幾個控件到窗體上,為每個空件編寫event就可以簡單的實作界面設計.但是強大的java也不比vb遜?同樣可以設計出精美的界面。

  2.Swing概述:

  當java1.0剛剛出現時還沒有swing,當時的GUI基本程式設計庫,sun取名叫AWT(Abstract Window Tookit),基本AWT庫處理使用者界面的方法是将這些元素的建立行為交給,底層作業系統的GUI工具箱進行處理,來實作WORA的目的。而因為種種原因,不同的OS之間存在差異,使得AWT界面庫存在許多bug。1996年sun同netscape通力合作建立了新的庫取名Swing。

  ------如果,沒有Swing,java的圖形界面就不名一文.------

  swing是java的基礎類,是JFC的一部分,完整的JFC是很巨大的,包括的元件也很多。

  3.為什麼要選擇Swing: Swing具有更豐富而且更加友善的使用者界面元素集合,Swing對于底層平台的依賴更少,是以,特殊平台上的bug會很少Swing會帶來交叉平台上的統一的視覺體驗

  4.許多初學java的朋友們在學完java的基礎部分後就會感到很茫然,還是對java能幹什麼不是很了解,是以在初步掌握基本的概念後就可以近一步的研究Swing,可以對初學者有一定的提高。

  下面我們就來初步的研究一個程式,個人覺得是入門Swing的很好的代碼。

// a simple exmple that can show the basis of swing

-------------------------------------------------------------------------

// import pakages which we need

import javax.swing.*;

import java.awt.*;

public class HelloCsdn

{

public static void main(String[] args)

{

HelloCsdnFrame frame=new HelloCsdnFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

-------------------------------------------------------------------------

class HelloCsdnFrame extends JFrame{

public HelloCsdnFrame()

{

setTitle("Hello CSDN.NET");

setSize(WIDTH,HEIGHT);

HelloCsdnPanel panel=new HelloCsdnPanel();

Container c=getContentPane();

c.add(panel);

}

public static final int WIDTH=300;

public static final int HEIGHT=200;

}

  我把此程式分為3part.每一部分都有注釋,這一段代碼是做什麼用的。 一起來分析此程式:

  在第一部分

// import pakages which we need

import javax.swing.*;

import java.awt.*;

public class HelloCsdn

{

public static void main(String[] args)

{

HelloCsdnFrame frame=new HelloCsdnFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

  可以看到我們首先導入了2個包 swing 和 awt,建立了一個object對這個object我們進行執行個體化, 然後用代碼

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show(); 來實作關閉Frame,但不是結束程式,其中止的隻是程式的主線程,

  第二部分:

class HelloCsdnFrame extends JFrame{

public HelloCsdnFrame()

{

setTitle("Hello CSDN.NET");

setSize(WIDTH,HEIGHT);

HelloCsdnPanel panel=new HelloCsdnPanel();

Container c=getContentPane();

c.add(panel);

}

public static final int WIDTH=300;

public static final int HEIGHT=200;

}

繼續我們繼承剛建立的HelloCsdnPanel

  到JPanel使我們的對象有JPanel的屬性,然後我們才能調用在frame上輸出字元的方法g.drawString

由此程式我們一方面可以很好的看出java的核心思想----繼承關系,另一方面可以看出swing的基本構架是什麼。

  他有幾個層,每個層實作自己的什麼功能。

  5.自此我們可以看出frame的内部結構:

------JFrame(底層)

   |

   ---------JRoot

|

---------JLayeredPane

   |

   -----------菜單條

|

-----------内容窗格

    |

    -----------透明窗格(頂層)

  而在這6個層中我們最關系的是菜單條和内容窗格.因為它覺定我們的frame是什麼樣的。

  總結:可以看出Swing是java很好的表現,怪不得關于Swing的書可以寫成很厚的一本,本章隻是教那些初學者,對于java有一個更好的認識,不近近是停留在控制台上的程式設計。

<script>zmbbs=1;</script>