日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java Swing入門基礎(chǔ)

 軟件團(tuán)隊(duì)頭目 2007-01-16
1.前言:

  當(dāng)我們學(xué)習(xí)過了java中的基本語法,并且熟悉java的面向?qū)ο蠡A(chǔ)以后,我們就可以開始簡單的Swing程序的設(shè)計(jì),用過Vb的朋友可能會(huì)被它的簡單的設(shè)計(jì)用戶界面方法所吸引,只需要拖幾個(gè)控件到窗體上,為每個(gè)空件編寫event就可以簡單的實(shí)現(xiàn)界面設(shè)計(jì).但是強(qiáng)大的java也不比vb遜?同樣可以設(shè)計(jì)出精美的界面。

  2.Swing概述:

  當(dāng)java1.0剛剛出現(xiàn)時(shí)還沒有swing,當(dāng)時(shí)的GUI基本編程庫,sun取名叫AWT(Abstract Window Tookit),基本AWT庫處理用戶界面的方法是將這些元素的創(chuàng)建行為交給,底層操作系統(tǒng)的GUI工具箱進(jìn)行處理,來實(shí)現(xiàn)WORA的目的。而因?yàn)榉N種原因,不同的OS之間存在差異,使得AWT界面庫存在許多bug。1996年sun同netscape通力合作創(chuàng)建了新的庫取名Swing。

  ------如果,沒有Swing,java的圖形界面就不名一文.------
  swing是java的基礎(chǔ)類,是JFC的一部分,完整的JFC是很巨大的,包括的組件也很多。

  3.為什么要選擇Swing: Swing具有更豐富而且更加方便的用戶界面元素集合,Swing對(duì)于底層平臺(tái)的依賴更少,因此,特殊平臺(tái)上的bug會(huì)很少Swing會(huì)帶來交叉平臺(tái)上的統(tǒng)一的視覺體驗(yàn)

  4.許多初學(xué)java的朋友們?cè)趯W(xué)完java的基礎(chǔ)部分后就會(huì)感到很茫然,還是對(duì)java能干什么不是很了解,所以在初步掌握基本的概念后就可以近一步的研究Swing,可以對(duì)初學(xué)者有一定的提高。

  下面我們就來初步的研究一個(gè)程序,個(gè)人覺得是入門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();
}
}
/** this part we construct a new frame HelloCsdnFrame
*/
-------------------------------------------------------------------------

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;
}
/**this part we extend our HelloCsdnFram to JFrame and
construct a new object HelloCsdnPanel and add it on the frame
/*
--------------------------------------------------------------------
class HelloCsdnPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello CSDN.NET",MESSAGE_X,MESSAGE_Y);
}
public static final int MESSAGE_X=100;
public static final int MESSAGE_Y=100;
}
/** A panel that display a message
*/

  我把此程序分為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();
}
}
/** this part we construct a new frame HelloCsdnFrame
*/

  可以看到我們首先導(dǎo)入了2個(gè)包 swing 和 awt,創(chuàng)建了一個(gè)object對(duì)這個(gè)object我們進(jìn)行實(shí)例化, 然后用代碼

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show(); 來實(shí)現(xiàn)關(guān)閉Frame,但不是結(jié)束程序,其中止的只是程序的主線程,

  第二部分:

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;
}
/**this part we extend our HelloCsdnFram to JFrame and
construct a new object HelloCsdnPanel and add it on the frame
/*

  在此我們把我們建立的object繼承java的JFrame類,使他有JFrame的屬性.行為.然后設(shè)置標(biāo)題和大小,再次建立一個(gè)新的object HelloCsdnPanel 這是因?yàn)槭窃贘Frame中實(shí)現(xiàn)的所以要建立容器c .把我們建立的panel對(duì)象放入containerc中。

  第三部分

class HelloCsdnPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello CSDN.NET",MESSAGE_X,MESSAGE_Y);
}
public static final int MESSAGE_X=100;
public static final int MESSAGE_Y=100;
}
/** A panel that display a message
*/ 繼續(xù)我們繼承剛建立的HelloCsdnPanel

  到JPanel使我們的對(duì)象有JPanel的屬性,然后我們才能調(diào)用在frame上輸出字符的方法g.drawString
由此程序我們一方面可以很好的看出java的核心思想----繼承關(guān)系,另一方面可以看出swing的基本構(gòu)架是什么。

  他有幾個(gè)層,每個(gè)層實(shí)現(xiàn)自己的什么功能。

  5.自此我們可以看出frame的內(nèi)部結(jié)構(gòu):

------JFrame(底層)
   |
   ---------JRoot
|
---------JLayeredPane
   |
   -----------菜單條
|
-----------內(nèi)容窗格
    |
    -----------透明窗格(頂層)

  而在這6個(gè)層中我們最關(guān)系的是菜單條和內(nèi)容窗格.因?yàn)樗X定我們的frame是什么樣的。

  總結(jié):可以看出Swing是java很好的表現(xiàn),怪不得關(guān)于Swing的書可以寫成很厚的一本,本章只是教那些初學(xué)者,對(duì)于java有一個(gè)更好的認(rèn)識(shí),不近近是停留在控制臺(tái)上的編程。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=152745

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多