国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

如何設(shè)計(jì)出具有GUI特色的純JAVA程序

2019-11-18 13:02:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  現(xiàn)在java語(yǔ)言在世界上非常流行,其應(yīng)用涉及電子商務(wù),INTERNET網(wǎng)上數(shù)據(jù)庫(kù),CGI及多媒體等各個(gè)方面。1999年12月SUN公司公布了最新版的JAVA2 SDK, 為新世紀(jì)的JAVA奠定基礎(chǔ)。
  
    JAVA是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言(OOP)。它是一種類C++的語(yǔ)言,由于JAVA消除了C/C++麻煩的內(nèi)存治理和一些復(fù)雜的構(gòu)造,如多繼續(xù)等,JAVA的應(yīng)用要比C++輕易得多,況且JAVA的運(yùn)行速度已與C++差不多(據(jù)美國(guó)有關(guān)部門測(cè)算)。還有那跨軟硬件平臺(tái)和一次編譯,多次運(yùn)行的機(jī)制,怎能不讓程序員心動(dòng)呢?
  
    JAVA運(yùn)行有兩種形式:小程序(APPLET)和應(yīng)用程序(application),為了簡(jiǎn)化起見(jiàn),本文只對(duì)應(yīng)用程序進(jìn)行探討,小程序是在JAVA原程序經(jīng)編譯無(wú)誤后嵌入到Html后經(jīng)IE或NC等瀏覽器使用的形式,我們?cè)诤竺鎸⒔o出應(yīng)用程序(APPLICATION)實(shí)例來(lái)。
  
    用過(guò)VC++,VB,Delphi和PowerBuilder的朋友都知道用這些軟件設(shè)計(jì)GUI(GRAPHICS USER INTERFACE)圖形界面非常輕易,只需用鼠標(biāo)拖拽控件即可,幾乎不用寫(xiě)什么代碼。JAVA問(wèn)世后,也有許多聞名大公司為JDK(JAVA2以前的版本叫做JDK,JAVA Developer Kit)開(kāi)發(fā)了集成GUI開(kāi)發(fā)環(huán)境軟件,如MICROSOFT的Visual J++,Borland的JBuilder, Symantec的Cafe, Visual Cafe 等等,雖然這些產(chǎn)品支持GUI界面,開(kāi)發(fā)程序較易,但也明顯存在著以下這些不足之處:
  1) 其JAVA版本滯后于SUN公司的最新版本。
  2) 帶來(lái)兼容性問(wèn)題,由于各家開(kāi)發(fā)自己的類庫(kù)文件,如MS用自己的WFC類庫(kù),造成無(wú)法與事實(shí)上的JAVA標(biāo)準(zhǔn)SUN公司的JAVA,JDK(SDK)和JFC(JAVA FOUNDATION CLASSES)相兼容,產(chǎn)生難以跨越平臺(tái)等缺點(diǎn)。
  3) 控件文件龐大,編譯和運(yùn)行較慢,運(yùn)行文件也較大。
  4) 開(kāi)發(fā)環(huán)境價(jià)高,有些產(chǎn)品不能“善始善終”,半路夭折,使用戶處于被動(dòng)局面。而SUN的JAVA,JFC等均是免費(fèi)提供的,有SUN公司龐大的技術(shù)力量保證。
  
    由于上述原因,現(xiàn)在在國(guó)際上已流行“Pure JAVA"即“純”JAVA技術(shù),也就是說(shuō)只用SUN公司的JAVA, JDK, JFC(GUI類庫(kù),類似AWT,但有著比AWT更強(qiáng)大的功能,又稱為SWING既“搖擺”)來(lái)開(kāi)發(fā)程序。其實(shí)只要了解JAVA的編程原理,及JDK和功能強(qiáng)大的JFC(SWING), 我們就可編寫(xiě)出具有專業(yè)水平的GUI界面的程序來(lái)。
  下面筆者以一個(gè)程序?yàn)槔瑏?lái)介紹如何編寫(xiě)具有“純”JAVA的程序。該程序的要害語(yǔ)句都有解釋:
  
  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 {
  //此處設(shè)置環(huán)境常量,如:字體,顏色等略去。
      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;
  //構(gòu)造器:對(duì)setMenu() 和 setGUI()數(shù)椐和調(diào)用的初始化和實(shí)例化
  public myGUI(){
  super("Ideal GUI");
  addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ dispose(); System.exit(0);}}); //創(chuàng)建窗口事件
  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(...
  } //監(jiān)聽(tīng)事件的發(fā)生,如按鈕的按下,鼠標(biāo)的按動(dòng)等,轉(zhuǎn)向相應(yīng)的處理。...
  
  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); //設(shè)置顯示大小,可在程序中更改
  this.setVisible(true); //設(shè)置可顯示
  SearchText.requestFocus();//文本框聚焦(選中)
  SearchText.selectAll();
    ButtonAction BAction = new ButtonAction();
  ClearButton.addActionListener(BAction);//將按鈕加入到活動(dòng)監(jiān)聽(tīng)器中
  SearchButton.addActionListener(BAction);
  }
  public static void main(String args[]){
  myGUI mGUI = new myGUI();
  } //啟動(dòng)主程序
  
    JAVA的GUI界面是由一系列嵌入組件組成的,它使用了JDK和JFC(SWING)組件。本例首先建立框架(JFRAME),在上面再建一個(gè)主面板(MAINPANEL),再往下建立一個(gè)子面板(TOPPANEL),然后將兩個(gè)按鈕和一個(gè)文本框插入到子面板中,這是一個(gè)典型的OOP實(shí)例, 在程序分別捕捉到兩個(gè)按鈕的按動(dòng)后,并顯示按鈕信息后再選取文本框中的內(nèi)容。這個(gè)軟件經(jīng)擴(kuò)充,可加入更多的子面板,和更多更復(fù)雜的組件(如JTABLE-表格或JTREE-樹(shù))。注重這個(gè)myGUI.java文件可用任何文本編輯軟件編輯,以純文本方式存盤。JFC的組件比AWT的組件更美觀,同樣的按鈕,JFC的好看,并能進(jìn)行更多的設(shè)置。
  
    在安裝好JAVA 1.2 (JDK)和JFC(SWING1.1.1或更高版本,這些系統(tǒng)可在有關(guān)網(wǎng)站下載)后即可在WINDOWS的DOS方式下編譯和運(yùn)行文件了。
  先對(duì)文件進(jìn)行編譯:
  javac myGUI.java
  如無(wú)錯(cuò)誤可用下面命令運(yùn)行文件:
  java myGUI
  此時(shí)就可以看到一幅漂亮的界面。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 韶关市| 桂林市| 闸北区| 赤水市| 安乡县| 南开区| 桦南县| 那坡县| 姚安县| 航空| 石泉县| 宣汉县| 咸宁市| 镇江市| 澄江县| 济南市| 哈巴河县| 卢龙县| 瑞金市| 宣威市| 通海县| 贡觉县| 临沧市| 普格县| 淮滨县| 双牌县| 公安县| 广东省| 厦门市| 鄯善县| 通道| 蒙自县| 万全县| 遂溪县| 大竹县| 泸定县| 泌阳县| 神池县| 五常市| 闸北区| 马龙县|