熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Eclipse 3.0 簡介和插件開發示例

2013-11-23 20:36:21  來源: Java開源技術 

  Eclipse 是一個很讓人著迷的開發環境它提供的核心框架和可擴展的插件機制給廣大的程序員提供了無限的想象和創造空間目前網上流傳相當豐富且全面的開發工具方面的插件但是Eclipse已經超越了開發環境的概念可以想象Eclipse將成為未來的集成的桌面環境目前的Eclipse本身就具備資源管理和外部程序的功能加上無所不能的插件將構成一個豐富多彩的工作環境而不僅僅是一個IDE
  
  Eclipse簡介和插件開發
  Eclipse 是一個很讓人著迷的開發環境它提供的核心框架和可擴展的插件機制給廣大的程序員提供了無限的想象和創造空間目前網上流傳相當豐富且全面的開發工具方面的插件但是Eclipse已經超越了開發環境的概念可以想象Eclipse將成為未來的集成的桌面環境目前的Eclipse本身就具備資源管理和外部程序的功能加上無所不能的插件將構成一個豐富多彩的工作環境而不僅僅是一個IDE對於程序員來說沒有什麼比可以隨心所欲的定制的工作環境更重要你的決心勇氣和創造力在與別人分享成果的過程中一覽無余好了你是不是心動了如果你已經對Eclipse有一定的認識那麼和我一起打造自己的個性化工作環境吧首先我們一起開發一個天氣預報的插件然後我們打造屬於自己的郵件快速監控功能
  
  以下的工作基於一定的前提那就是你是一名Java程序員你很欣賞並正開始使用Eclipse這個超酷的工作環境別忘了下載最新版的Eclipse本文基於Eclipse開發
  
  天氣預報插件
  如果你已經厭倦了總是要登錄某些網站從相關網頁上獲取信息這裡有一個讓你通過Eclipse快速獲取信息的新方法讓我們從頭開始做一個屬於自己的天氣預報插件吧你的Eclipse將具有天氣預報功能是不是很酷呢?
  
  在這一部分我們將要實現一個Eclipse插件他可以在任何我們想知道的時候通過簡單的點擊鼠標告訴我們本地區的天氣預報這當然很刺激對於一個程序員而言事情就應該如此讓我們開始吧我們首先要定義一個插件把他加到菜單和工具欄中對於沒有插件開發經驗的你可以參考《開發 Eclipse 插件》樹立基本的插件開發意識當然本文將詳細的輔助你完成這一創造性的工作
  
  最基礎的插件
  
  打開菜單 File > New> Other >Plugin Project輸入項目名稱next出現對話框只要在插件名處輸入mupluginnext 以後選擇 HelloWorld的插件模板你可以直接新建一個名為myplugin的最簡單的插件但其實我們的天氣預報並不比它復雜多少建完改插件以後的效果如下圖
  
 

  現在將項目作為運行時工作台運行(run - run as runtime workbench)在一個全新的Eclipse窗口中通過點擊菜單 sample menu 的sample Action或者工具欄中的圓形Eclipse 圖標你將看到如下效果的對話框
  
 

  到此為止天氣預報插件的原始版做成了通過修改pluginxml我們將菜單改成中文形式需要修改的地方就詳見表格
  
  <actionSet label=Sample Action Set visible=true id=mypluginactionSet
  <menu label=我的空間 id=sampleMenu
  <separator name=sampleGroup
  </separator>
  </menu>
  <action label=天氣預報 icon=icons/samplegif class=mypluginactionsSampleAction
  tooltip=Hello Eclipse world menubarPath=sampleMenu/sampleGroup
  toolbarPath=sampleGroup id=mypluginactionsSampleAction
  </action>
  
  此時在運行時工作台我們的菜單已經改變
  
 

  用VisualEditer制作天氣預報對話框
  
  雖然菜單是天氣預報但是我們需要的不是hello Eclispe對話框我們需要的是告訴我們天氣的對話框當然需要我們從頭開始於是我們需要重新構建一個對話框這個就需要 Visual Editor來幫助進行界面的開發我們將使用Visual Editor實現一個Swing對話框當然只用VE做一個對話框是有點大材小用但是作為起點已經合適了
  
  首先構建Visual Editer開發環境(讀者可參考相關資料)當一切准備齊全鼠標右鍵點擊PackgeExpoler中的 mupluginactionsjava文件從彈出式菜單中選擇 new>other>VisualClass新建一個可視化的類彈出界面如下圖
  
 

  選擇next然後在name中輸入WeatherDialog這個就是我們用來顯示天氣預報的dialog
  
  選擇該對話框的超類為javaxswingJDiaog點擊Finish按鈕等待一段時間後我們的對話框就基本生成了鼠標點擊左上角圖標直接輸入天氣預報就是對話框的標題同時 我們可以看到左側的VisualEditor面板
  
 

  然後我們將該對話框於與剛才的天氣預報菜單連接找到SampleAction的run函數如下所示
  
  public void run(IAction action) {
  MessageDialogopenInformation(
  windowgetShell()Myplugin Plugin Hello Eclipse world);
  }
  
  替換成如下代碼
  
  public void run(IAction action)
  {
  WeatherDialog wd=new WeatherDialog();
  wdsetSize( );
  wdshow();
  }
  
  此時點擊菜單運行我們的對話框看起來象這個樣子在此基礎上我們還要在上面增加天氣預報信息
  
 

  增加天氣預報功能
  
 

  下面的部分是重點我們將使用具有解析Html功能的Swing組件JEditPane來獲取網絡上的現成的天氣預報信息根據上圖從 VisualEditor的面板中Swing Components組點擊JEditPane加入到對話框中並修改對話框代碼使得最終的代碼如下
  
  /*
  * Created on
  * */
  package myplugin;
  
  
  import javaioBufferedReader;
  import javaioInputStreamReader;
  import URL;
  
  import javaxswingJDialog;
  import javaxswingJEditorPane;
  
  /**
  * <p>Title: WatherDialog</p>
  * <p>Description: 這個是對話框類用於顯示指定城市的當天的天氣預報</p>
  * <p>Copyright: Copyright (c) </p>
  * <p>Company:UF SOFT</p>
  * @author 趙勇
  * @version
  */
  public class WatherDialog extends JDialog
  {
  String city=北京;
  
  private JEditorPane jEditorPane = null;
  /**
  * This method initializes
  * /
  public WatherDialog(String city)
  {
  super();
  thiscity=city;
  initialize();
  }
  /**
  * This method initializes this
  * @return void
  */
  private void initialize()
  {
  thissetContentPane(getJEditorPane());
  try
  {
  //構建URL對象
  URL url =new URL(bin/figureWeather/simpleSearchcgi?city=+city);
  String temp=;
  BufferedReader in
  = new BufferedReader(new InputStreamReader(urlopenStream()));
  //使用openStream得到一輸入流並由此構造一個BufferedReader對象
  String inputLine;
  //從輸入流不斷的讀數據直到讀完為止
  while ((inputLine = inreadLine()) != null)
  temp=temp+inputLine+\n;
  //關閉輸入流
  inclose();
  String weather
  =tempsubstring ( tempindexOf( <body)
  templastIndexOf( body>)+);
  
  thisjEditorPane setText(weather);
  }
  catch (Exception e)
  {
  eprintStackTrace();
  }
  thissetTitle(天氣預報);
  thissetSize( );
  
  }
  /**
  * This method initializes jEditorPane
  *
  * @return javaxswingJEditorPane
  */
  private JEditorPane getJEditorPane()
  {
  if (jEditorPane == null)
  {
  jEditorPane = new JEditorPane();
  jEditorPanesetContentType( text/html);
  }
  return jEditorPane;
  }
  } // @jve:declindex=:visualconstraint=
  
  以上代碼中最關鍵的部分就是對話框中的JEditorPane對象在初始化時從一個URL 獲取天氣預報信息表現為Html標記片段不用解析直接調用JEditorPane的setText 方法就可以將Html格式的信息直接按解析過的方式顯示也就是天氣預報信息了
  
  此時Action中的調用需要做修改
  
  public void run(IAction action)
  {
  WeatherDialog wd=new WeatherDialog(北京);
  wdsetSize( );
  wdshow();
  }
  
  現在以運行時工
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28736.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.