分享
 
 
 

Eclipse3.0简介和插件开发示例

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Eclipse 是一个很让人着迷的开发环境,它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。目前网上流传相当丰富且全面的开发工具方面的插件,但是Eclipse已经超越了开发环境的概念,可以想象Eclipse将成为未来的集成的桌面环境。目前的Eclipse本身就具备资源管理和外部程序的功能,加上无所不能的插件,将构成一个丰富多彩的工作环境而不仅仅是一个IDE。

1.Eclipse简介和插件开发

Eclipse 是一个很让人着迷的开发环境,它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。目前网上流传相当丰富且全面的开发工具方面的插件,但是Eclipse已经超越了开发环境的概念,可以想象Eclipse将成为未来的集成的桌面环境。目前的Eclipse本身就具备资源管理和外部程序的功能,加上无所不能的插件,将构成一个丰富多彩的工作环境而不仅仅是一个IDE。对于程序员来说,没有什么比可以随心所欲的定制的工作环境更重要,你的决心,勇气和创造力在与别人分享成果的过程中一览无余。好了,你是不是心动了,如果你已经对Eclipse有一定的认识,那么,和我一起打造自己的个性化工作环境吧,首先我们一起开发一个天气预报的插件,然后我们打造属于自己的邮件快速监控功能。

以下的工作基于一定的前提,那就是你是一名Java程序员,你很欣赏并正开始使用Eclipse这个超酷的工作环境,别忘了下载最新版的Eclipse3.0,本文基于Eclipse3.0开发。

2.天气预报插件

如果你已经厌倦了总是要登录某些网站从相关网页上获取信息,这里有一个让你通过Eclipse快速获取信息的新方法。让我们从头开始,做一个属于自己的天气预报插件吧,你的Eclipse将具有天气预报功能,是不是很酷呢?

在这一部分,我们将要实现一个Eclipse插件,他可以在任何我们想知道的时候通过简单的点击鼠标告诉我们本地区的天气预报,这当然很刺激。对于一个程序员而言,事情就应该如此。让我们开始吧,我们首先要定义一个插件,把他加到菜单和工具栏中。对于没有插件开发经验的你,可以参考《开发 Eclipse 插件》,树立基本的插件开发意识,当然,本文将详细的辅助你完成这一创造性的工作。

2.1最基础的插件

打开菜单 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,我们将菜单改成中文形式,需要修改的地方就2处,详见表格。

<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>

此时在运行时工作台,我们的菜单已经改变。

2.2用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(400, 335);

wd.show();

}

此时,点击菜单运行,我们的对话框看起来象这个样子,在此基础上我们还要在上面增加天气预报信息。

2.3增加天气预报功能

下面的部分是重点,我们将使用具有解析Html功能的Swing组件JEditPane,来获取网络上的现成的天气预报信息,根据上图,从 VisualEditor的面板中Swing Components组点击JEditPane,加入到对话框中。并修改对话框代码使得最终的代码如下:

/*

* Created on 2004-9-23

* */

package myplugin;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

import javax.swing.JDialog;

import javax.swing.JEditorPane;

/**

* <p>Title: WatherDialog</p>

* <p>Description: 这个是对话框类,用于显示指定城市的当天的天气预报</p>

* <p>Copyright: Copyright (c) 2004</p>

* <p>Company:UF SOFT</p>

* @author 赵勇

* @version 1.0

*/

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("http://weather.news.sina.com.cn//cgi-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>")+5);

this.jEditorPane .setText(weather);

}

catch (Exception e)

{

e.printStackTrace();

}

this.setTitle("天气预报");

this.setSize(400, 166);

}

/**

* 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=0:visual-constraint="70,19"

以上代码中最关键的部分就是对话框中的JEditorPane对象,在初始化时,从一个URL 获取天气预报信息,表现为Html标记片段,不用解析,直接调用JEditorPane的setText 方法,就可以将Html格式的信息直接按解析过的方式显示,也就是天气预报信息了,

此时Action中的调用需要做修改

public void run(IAction action)

{

WeatherDialog wd=new WeatherDialog("北京");

wd.setSize(400, 335);

wd.show();

}

现在以运行时工

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有