乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Java Swing入門基礎(chǔ)

       軟件團隊頭目 2007-01-16
      1.前言:

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

        2.Swing概述:

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

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

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

        4.許多初學java的朋友們在學完java的基礎(chǔ)部分后就會感到很茫然,還是對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();
      }
      }
      /** 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
      */

        可以看到我們首先導入了2個包 swing 和 awt,創(chuàng)建了一個object對這個object我們進行實例化, 然后用代碼

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.show(); 來實現(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è)置標題和大小,再次建立一個新的object HelloCsdnPanel 這是因為是在JFrame中實現(xiàn)的所以要建立容器c .把我們建立的panel對象放入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使我們的對象有JPanel的屬性,然后我們才能調(diào)用在frame上輸出字符的方法g.drawString
      由此程序我們一方面可以很好的看出java的核心思想----繼承關(guān)系,另一方面可以看出swing的基本構(gòu)架是什么。

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

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

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

        而在這6個層中我們最關(guān)系的是菜單條和內(nèi)容窗格.因為它覺定我們的frame是什么樣的。

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


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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約