1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      如何設計出具有GUI特色的“純”JAVA程序

      更新時間: 2007-05-23 10:59:51來源: 粵嵌教育瀏覽量:910


        現在JAVA語言在世界上非常流行,其應用涉及電子商務,INTERNET網上數據庫,CGI及多媒體等各個方面。1999年12月SUN公司宣布了版的JAVA2 SDK, 為新世紀的JAVA奠定基礎。

        JAVA是一種面向對象的程序設計語言(OOP)。它是一種類C++的語言,由于JAVA消除了C/C++麻煩的內存管理和一些復雜的構造,如多繼承等,JAVA的應用要比C++容易得多,況且JAVA的運行速度已與C++差不多(據美國有關部門測算)。還有那跨軟硬件平臺和一次編譯,多次運行的機制,怎能不讓程序員心動呢?

        JAVA運行有兩種形式:小程序(APPLET)和應用程序(APPLICATION),為了簡化起見,本文只對應用程序進行探討,小程序是在JAVA原程序經編譯無誤后嵌入到HTML后經IE或NC等瀏覽器使用的形式,我們在后面將給出應用程序(APPLICATION)實例來。

        用過VC++,VB,DELPHI和POWERBUILDER的朋友都知道用這些軟件設計GUI(GRAPHICS USER INTERFACE)圖形界面非常容易,只需用鼠標拖拽控件即可,幾乎不用寫什么代碼。JAVA問世后,也有許多大公司為JDK(JAVA2以前的版本叫做JDK,JAVA Developer Kit)開發了集成GUI開發環境軟件,如MICROSOFT的Visual J++,Borland的JBuilder, Symantec的Cafe, Visual Cafe 等等,雖然這些產品支持GUI界面,開發程序較易,但也明顯存在著以下這些不足之處:
      1) 其JAVA版本滯后于SUN公司的版本。
      2) 帶來兼容性問題,由于各家開發自己的類庫文件,如MS用自己的WFC類庫,造成無法與事實上的JAVA標準SUN公司的JAVA,JDK(SDK)和JFC(JAVA FOUNDATION CLASSES)相兼容,產生難以跨越平臺等缺點。
      3) 控件文件龐大,編譯和運行較慢,運行文件也較大。
      4) 開發環境價高,有些產品不能“善始善終”,半路夭折,使用戶處于被動局面。而SUN的JAVA,JFC等均是免費提供的,有SUN公司龐大的技術力量保證。

        由于上述原因,現在在國際上已流行“Pure JAVA"即“純”JAVA技術,也就是說只用SUN公司的JAVA, JDK, JFC(GUI類庫,類似AWT,但有著比AWT更強大的功能,又稱為SWING既“搖擺”)來開發程序。其實只要了解JAVA的編程原理,及JDK和功能強大的JFC(SWING), 我們就可編寫出具有專業水平的GUI界面的程序來。
      下面筆者以一個程序為例,來介紹如何編寫具有“純”JAVA的程序。該程序的關鍵語句都有解釋:

      import java.awt.*;
      import java.awt.event.WindowAdapter;
      import java.awt.event.WindowEvent;
      import com.sun.java.swing.*;
      public class myGUI extends com.sun.java.swing.JFrame {
      //此處設置環境常量,如:字體,顏色等略去。
          com.sun.java.swing.JPanel MainPanel;
        com.sun.java.swing.JPanel TopPanel;
      com.sun.java.swing.JButton ClearButton;
      com.sun.java.swing.JButton SearchButton;
      com.sun.java.swing.JTextField SearchText;
      //構造器:對setMenu() 和 setGUI()數椐和調用的初始化和實例化
      public myGUI(){
      super("Ideal GUI");
      addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ dispose(); System.exit(0);}}); //創建窗口事件
      setMenu();
      setGUI();
      }

      protected void ClearButtonClicked(){
      System.out.println("Clear Button Clicked");
      SearchText.requestFocus();
      SearchText.selectAll();
      } //處理ClearButton按鈕事件子程序

      protected void SearchButtonClicked(){
      System.out.println("Search Button Clicked");
      SearchText.requestFocus();
      SearchText.selectAll();
      } // 處理SearchButton按鈕事件子程序

      class ButtonAction implements java.awt.event.ActionListener {
      public void actionPerformed(java.awt.event.ActionEvent event) {
      Object object = event.getSource();
      if (object == ClearButton)
      ClearButtonClicked();
      else if(object == SearchButton)
      SearchButtonClicked();
      } // end public void actionPerformed(...
      } //監聽事件的發生,如按鈕的按下,鼠標的按動等,轉向相應的處理。...

      public void setGUI(){
      TopPanel=new com.sun.java.swing.JPanel(); //TopPanel面板
      java.awt.GridBagLayout TopLayout = new java.awt.GridBagLayout();
      TopPanel.setLayout(TopLayout);
      ClearButton = new com.sun.java.swing.JButton("Clear"); //ClearButton按鈕
      SearchText = new com.sun.java.swing.JTextField("Enter text here."); //SearchText文本框
      SearchButton = new JButton("Search"); //SearchButton按鈕
      TopPanel.add(SearchText);//在TopPanel上安裝SearchText文本框
      TopPanel.add(SearchButton); ///在TopPanel上安裝SearchButton按鈕
      TopPanel.add(ClearButton);// 在TopPanel上安裝ClearButton按鈕
      MainPanel = new com.sun.java.swing.JPanel();//主面板MainPanel
      java.awt.GridBagLayout MainLayout = new java.awt.GridBagLayout();
      MainPanel.setLayout(MainLayout);
      java.awt.GridBagConstraints MainConstraints = new java.awt.GridBagConstraints();
      SetConstraints(MainConstraints, GBCBOTH,TOPPANELX,TOPPANELY,1,1); //TopPanel
      MainLayout.setConstraints(TopPanel,MainConstraints);
      MainPanel.add(TopPanel);//將TopPanel裝入主面板MainPanel
      this.getContentPane().add(MainPanel); //將主面板裝入Jframe框架
      this.setSize(640,480); //設置顯示大小,可在程序中更改
      this.setVisible(true); //設置可顯示
      SearchText.requestFocus();//文本框聚焦(選中)
      SearchText.selectAll();
        ButtonAction BAction = new ButtonAction();
      ClearButton.addActionListener(BAction);//將按鈕加入到活動監聽器中
      SearchButton.addActionListener(BAction);
      }
      public static void main(String args[]){
      myGUI mGUI = new myGUI();
      } //啟動主程序

        JAVA的GUI界面是由一系列嵌入組件組成的,它使用了JDK和JFC(SWING)組件。本例首先建立框架(JFRAME),在上面再建一個主面板(MAINPANEL),再往下建立一個子面板(TOPPANEL),然后將兩個按鈕和一個文本框插入到子面板中,這是一個典型的OOP實例, 在程序分別捕捉到兩個按鈕的按動后,并顯示按鈕信息后再選取文本框中的內容。這個軟件經擴充,可加入更多的子面板,和更多更復雜的組件(如JTABLE-表格或JTREE-樹)。注意這個myGUI.java文件可用任何文本編輯軟件編輯,以純文本方式存盤。JFC的組件比AWT的組件更美觀,同樣的按鈕,JFC的好看,并能進行更多的設置。

        在安裝好JAVA 1.2 (JDK)和JFC(SWING1.1.1或更高版本,這些系統可在有關網站下載)后即可在WINDOWS的DOS方式下編譯和運行文件了。
      先對文件進行編譯:
      javac myGUI.java
      如無錯誤可用下面命令運行文件:
      java myGUI.class
      此時就可以看到一幅漂亮的界面。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文无遮挡好黄H肉视频 | 亚洲精品日韩综合观看成人91 | 色多多视频在线导航 | 亚洲AV秘一区二区色 | 日韩国产精品久久午夜夜伦鲁鲁 | 免费的aⅴ中文字幕 |