Eclipse 是一個很讓人著迷的開發環境
它提供的核心框架和可擴展的插件機制給廣大的程序員提供了無限的想象和創造空間
目前網上流傳相當豐富且全面的開發工具方面的插件
但是Eclipse已經超越了開發環境的概念
可以想象Eclipse將成為未來的集成的桌面環境
目前的Eclipse本身就具備資源管理和外部程序的功能
加上無所不能的插件
將構成一個豐富多彩的工作環境而不僅僅是一個IDE
Eclipse簡介和插件開發 Eclipse 是一個很讓人著迷的開發環境
它提供的核心框架和可擴展的插件機制給廣大的程序員提供了無限的想象和創造空間
目前網上流傳相當豐富且全面的開發工具方面的插件
但是Eclipse已經超越了開發環境的概念
可以想象Eclipse將成為未來的集成的桌面環境
目前的Eclipse本身就具備資源管理和外部程序的功能
加上無所不能的插件
將構成一個豐富多彩的工作環境而不僅僅是一個IDE
對於程序員來說
沒有什麼比可以隨心所欲的定制的工作環境更重要
你的決心
勇氣和創造力在與別人分享成果的過程中一覽無余
好了
你是不是心動了
如果你已經對Eclipse有一定的認識
那麼
和我一起打造自己的個性化工作環境吧
首先我們一起開發一個天氣預報的插件
然後我們打造屬於自己的郵件快速監控功能
以下的工作基於一定的前提
那就是你是一名Java程序員
你很欣賞並正開始使用Eclipse這個超酷的工作環境
別忘了下載最新版的Eclipse
本文基於Eclipse
開發
天氣預報插件 如果你已經厭倦了總是要登錄某些網站從相關網頁上獲取信息
這裡有一個讓你通過Eclipse快速獲取信息的新方法
讓我們從頭開始
做一個屬於自己的天氣預報插件吧
你的Eclipse將具有天氣預報功能
是不是很酷呢?
在這一部分
我們將要實現一個Eclipse插件
他可以在任何我們想知道的時候通過簡單的點擊鼠標告訴我們本地區的天氣預報
這當然很刺激
對於一個程序員而言
事情就應該如此
讓我們開始吧
我們首先要定義一個插件
把他加到菜單和工具欄中
對於沒有插件開發經驗的你
可以參考《開發 Eclipse 插件》
樹立基本的插件開發意識
當然
本文將詳細的輔助你完成這一創造性的工作
最基礎的插件
打開菜單 File
> New
> Other
>Plug
in Project
輸入項目名稱
next出現對話框
只要在插件名處輸入
muplugin
next 以後選擇
Hello
World
的插件模板你可以直接新建一個名為myplugin的最簡單的插件
但其實我們的天氣預報並不比它復雜多少
建完改插件以後的效果如下圖
現在
將項目作為運行時工作台運行(run - run as runtime workbench)
在一個全新的Eclipse窗口中
通過點擊菜單 sample menu 的sample Action或者工具欄中的圓形Eclipse 圖標
你將看到如下效果的對話框
到此為止
天氣預報插件的原始版做成了
通過修改plugin
xml
我們將菜單改成中文形式
需要修改的地方就
處
詳見表格
<actionSet label=
Sample Action Set
visible=
true
id=
myplugin
actionSet
>
<menu label=
我的空間
id=
sampleMenu
>
<separator name=
sampleGroup
>
</separator>
</menu>
<action label=
天氣預報
icon=
icons/sample
gif
class=
myplugin
actions
SampleAction
tooltip=
Hello
Eclipse world
menubarPath=
sampleMenu/sampleGroup
toolbarPath=
sampleGroup
id=
myplugin
actions
SampleAction
>
</action>
此時在運行時工作台
我們的菜單已經改變
用VisualEditer制作天氣預報對話框
雖然菜單是天氣預報
但是我們需要的不是hello Eclispe對話框
我們需要的是告訴我們天氣的對話框
當然需要我們從頭開始
於是我們需要重新構建一個對話框
這個就需要 Visual Editor來幫助進行界面的開發
我們將使用Visual Editor實現一個Swing對話框
當然只用VE做一個對話框是有點大材小用
但是作為起點
已經合適了
首先構建Visual Editer開發環境(讀者可參考相關資料)
當一切准備齊全
鼠標右鍵點擊PackgeExpoler中的
muplugin
actions
java文件
從彈出式菜單中選擇 new
>other
>VisualClass
新建一個可視化的類
彈出界面如下圖
選擇next
然後在name中輸入WeatherDialog
這個就是我們用來顯示天氣預報的dialog
選擇該對話框的超類為javax
swing
JDiaog
點擊Finish按鈕
等待一段時間後
我們的對話框就基本生成了
鼠標點擊左上角圖標
直接輸入天氣預報就是對話框的標題
同時 我們可以看到左側的VisualEditor面板
然後我們將該對話框於與剛才的天氣預報菜單連接找到SampleAction的run函數
如下所示
public void run(IAction action) {
MessageDialog
openInformation(
window
getShell()
Myplugin Plug
in
Hello
Eclipse world
);
}
替換成如下代碼
public void run(IAction action)
{
WeatherDialog wd=new WeatherDialog();
wd
setSize(
);
wd
show();
}
此時
點擊菜單運行
我們的對話框看起來象這個樣子
在此基礎上我們還要在上面增加天氣預報信息
增加天氣預報功能
下面的部分是重點
我們將使用具有解析Html功能的Swing組件JEditPane
來獲取網絡上的現成的天氣預報信息
根據上圖
從 VisualEditor的面板中Swing Components組點擊JEditPane
加入到對話框中
並修改對話框代碼使得最終的代碼如下
/*
* Created on
* */
package myplugin;
import java
io
BufferedReader;
import java
io
InputStreamReader;
import
URL;
import javax
swing
JDialog;
import javax
swing
JEditorPane;
/**
* <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();
this
city=city;
initialize();
}
/**
* This method initializes this
* @return void
*/
private void initialize()
{
this
setContentPane(getJEditorPane());
try
{
//構建URL對象
URL url =new URL(
bin/figureWeather/simpleSearch
cgi?city=
+city);
String temp=
;
BufferedReader in
= new BufferedReader(new InputStreamReader(url
openStream()));
//使用openStream得到一輸入流並由此構造一個BufferedReader對象
String inputLine;
//從輸入流不斷的讀數據
直到讀完為止
while ((inputLine = in
readLine()) != null)
temp=temp+inputLine+
\n
;
//關閉輸入流
in
close();
String weather
=temp
substring ( temp
indexOf(
<body
)
temp
lastIndexOf(
body>
)+
);
this
jEditorPane
setText(weather);
}
catch (Exception e)
{
e
printStackTrace();
}
this
setTitle(
天氣預報
);
this
setSize(
);
}
/**
* This method initializes jEditorPane
*
* @return javax
swing
JEditorPane
*/
private JEditorPane getJEditorPane()
{
if (jEditorPane == null)
{
jEditorPane = new JEditorPane();
jEditorPane
setContentType(
text/html
);
}
return jEditorPane;
}
} // @jve:decl
index=
:visual
constraint=
以上代碼中最關鍵的部分就是對話框中的JEditorPane對象
在初始化時
從一個URL 獲取天氣預報信息
表現為Html標記片段
不用解析
直接調用JEditorPane的setText 方法
就可以將Html格式的信息直接按解析過的方式顯示
也就是天氣預報信息了
此時Action中的調用需要做修改
public void run(IAction action)
{
WeatherDialog wd=new WeatherDialog(
北京
);
wd
setSize(
);
wd
show();
}
現在以運行時工
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28736.html