赛迪网 > IT技术 今日更新 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Eclipse 3.0简介和插件实例开发示例详解 (2)

发布时间:2005.04.25 14:38     来源:ChinaITLab    作者:ChinaITLab

   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();
  }
  

现在以运行时工作台的方式运行,点击天气预报菜单,可以看到下图:

  

如果你在上海或者其他城市,试着修改city参数为"上海",再次运行,你将发现,你仍然能够得到该城市的天气预报。值得注意的是,Xmethod网站提供了一个天气预报的WebService,可惜只有美国的城市,不然我们可以使用Web Service调用获取天气预报,将会更酷。

<<上一页 1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 实例教您Eclipse快速上手指南之使用ANT (04-25) · 献给初学者:Java语言基础 (04-25)
· C++创始人坦言不输Java及C# 用户逾300万 (04-24) · 教您如何在Eclipse中建立自己的JUnit测试 (04-24)
· BEA、Borland两大公司认同Eclipse平台 (04-24) · JDeveloper 10g快速开发会话EJB完全图解 (04-22)
· Eclipse遮住了谁的光芒? Eclipse背后 (04-22) · 强者的对抗 关注日蚀计划——Eclipse (04-22)
· 献给初学者:用Java编写猜数字的小游戏 (04-22) · Java菜鸟入门秘籍之基本语法篇 (04-22)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管