Java Column 小台哥淺談 Java 的實作與應用(九)Java 統計圖表的 Applet

摘要:

   利用 Java 的一些現成類別和圖形使用介面,
   可以很快速地建立起一個實用的 Applet 。
   本文介紹幾個 Java 的公用類別程式和一個
   在全球資訊網上繪製實用統計圖表的 Applet 。

本文全文見 HOPE NET 光碟月刊第 30 期,1996 年 十一月號。


程式練習題:

    下面是一個 Java 的程式練習題,請讀者想一想,要如何去解這個題目呢?

  「寫一個 Java 的應用程式,其中包括一個 Language 的類別,在類別之中要
有學員們的名字、電腦語言的名稱等類別的屬性,和加入學員姓名及印出結果的方
法。
    輸入:由鍵盤輸入學員的姓名,以及每個人所通曉的電腦語言
    處理:每一個輸入學員中提及的電腦語言都要建立一個 Language 物件,並在
          結束時印出報表 
    輸出:報表列出所有的電腦語言和每個語言中的學員名字及數量」

Problem 1 Output....

程式練習題解答 見 HOPE NET 光碟月刊第 30 期,1996 年 十一月號。


選取電腦語言的 Applet 用可以復選的表單

  下面的這個程式就可以讓人在眾多的電腦語言之中任意選取熟悉的電腦語言,
並且隨著使用者選擇的改變而隨時將不同的選擇結果展示出來。因為這展示的結果
用的是英文,一些英文文法上的考慮也加到程式當中。




程式的全文如下:

  import java.applet.*;
  import java.awt.*;
  public class MultiList extends Applet {
     List   listLang;                             // 選項列表
     String sItems [] = {"Java","HTML","C++","C","SmallTalk",
                         "Pascal","4GL","BASIC","FORTRAN",
                             "COBOL","Others"};
     private String sText;                        // 信息的文字
     public void init() {
          add(new Label("Programming Language")); // 加標題
          prtLangs(new String[0]);                // 印信息
          listLang = new List(5, true);           // 選項列表
          for (int i=0; i < sItems.length; i++)
              listLang.addItem(sItems[i]);        // 將語言逐一加入
          add(listLang);                          // 加入選項列表
     }
     public void prtLangs(String[] sSlect) {
        switch (sSlect.length) {
          case 0:                                 // 冇選
              sText = "Programming Language : None ";
             break;
          case 1:                                 // 有選
              sText = "My Programming Language is " +sSlect[0] + ".";
             break;
          default:                                // 多選
              sText = "My Programming Languages are ";
              for (int i = 0; i < (sSlect.length-1); i++)
                 sText +=  sSlect[i]+ ", ";
              sText += "and " + sSlect[sSlect.length-1] + ".";
         }
         repaint();                              // 呼叫繪圖方法
     }
     public void paint(Graphics g) {             // 繪圖方法
         g.drawString(sText, 0,120);             // 印出信息
     }
     public boolean handleEvent(Event evt) {
        if ((evt.id == Event.LIST_SELECT) ||     // 選擇語言了
            (evt.id == Event.LIST_DESELECT))  {  // 或改變主意了
           if (evt.target.equals(listLang))      // 列出選中的項目
              prtLangs(listLang.getSelectedItems());
           return true;
        }
        return super.handleEvent(evt);           // 交上級處理
     }
  }

    程式之中,當我們呼叫 List 類別之中的 getSelectedItems() 這個方法時,
它傳回來的是一個字串矩陣,例如上面的那個String[] sSelect。這時,我們只要
把整個矩陣交給一個自己寫的方法去處理,就可以將相關的程式邏輯放在此一方法
之內了,例如上面的 prtLangs() 方法就接收所有被選到的電腦語言名字來做一些
處理的工作。

調查學員使用語言的 Applet

  這一個學員使用語言調查的 Applet ,讓人輸入學員姓名和學員所熟悉的電腦
語言,以及程式的控制。程式的控制工作包括洗清重來和輸入完畢,以便重新輸入
下一筆資料。
必須用允許 Java 的瀏覽器才能操作此圖!
懷戀的家鄉小吃 Applet

  上一個程式,只要將它的標示文字略為改變,並且將列表名單之中的項目改變
就可以搖身一變,成為一個意見調查統計的 Applet 了。例如要統計大家對某些食
物口味的偏好、流行歌曲的排行榜、或是對某些影歌星人物的喜好、業務員的銷售
成果圖,以及其他各種可以做輸入調查統計的資料,都可以用同一個方法,在全球資
訊網上展示圖表並接受輸入的資料。

    例如下面就是調查旅美僑胞最懷戀的家鄉小吃的 Applet:       
必須用允許 Java 的瀏覽器才能操作此圖!
Symon 的書名叫做: 《網路劇坊─小台哥笑談網路實作與管理》 台北市維科出版社, 出版

歡迎對本站內容提出您的寶貴意見, E-mail: symonchang@earthlink.net
回首頁 Back to Home | 上一頁 Previous Page | 下一頁 Next Page | 任一頁 Any Page
Symon Chang 小台哥 Symon & Associates, CA. U.S.A symonchang@earthlink.net
Last modified: 11-30-96