北方站长站
客服热线:0632-5117766

构建可扩展的Java图表组件

[2005-12-26 00:00:00] 作者:Northz.com 来源:北方站长站

Tags:组件 图表 扩展 构建 int public 一个 坐标 我们 数据

  

  在此,我们对前面的图表组件进行扩展。这里我们用到了一个设计模式:Observer模式。使用Observer模式可使一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。所以在Observer中,关键的对象是被观察目标和观察者。一个观察目标可以有多个观察者。观察者必须事先注册给观察目录。这样当观察目录的状态发生改变时,观察者才有可能被通知到。sts北方站长站
  在我们的实时绘图结构中,DataSeries就是被观察目标,而Chart就是观察者。为此,我们设计了一个DataChangeListener接口作为观察者。我们重载了一个Chart来实现DataChangeListener。相应的,我们也重载了DataSeries类,提供注册观察者的机制。下面是它们的结构:sts北方站长站
构建可扩展的Java图表组件sts北方站长站
  RealtimeChart对象事先用registerDataChangeListener方法注册给RealtimeDataSeries对象。当RealtimeDataSeries的数据发生改变时,将调用notifyListener方法通知所有已注册的DataChangeListener。Notify方法将依次调用每个已注册DataChangeListener对象的dataChanged方法。如下图:sts北方站长站
构建可扩展的Java图表组件sts北方站长站
  在RealtimeChart中,实现了DataChangeListener接口的dataChanged方法:sts北方站长站
public class RealtimeChart extends Chart implements DataChangeListenersts北方站长站
{ sts北方站长站
 …… sts北方站长站
 /*实现DataChangeListener的方法*/ sts北方站长站
 public void dataChanged() sts北方站长站
 { repaint(); sts北方站长站
 }sts北方站长站
}
sts北方站长站
  RealtimeChart的dataChanged方法在这里只需简单的重新绘制一次自己。绘制时将自动按新的数据来绘制。利用Observer模式,实时绘图就这样子简单的实现了。sts北方站长站
  借助实时绘图的例子,读者可以很容易的自行写一个连接到数据库或者说网络流的绘图程序,在此,我们就不作讲解了。sts北方站长站
  结束语sts北方站长站
  本文已较完整的讲解了一个可扩展的图表组件的构建过程。读者可以在此基础上扩展自己的组件。例如扩展LinePlot,使它具有可改变线型,线宽,还有点样式等功能。或扩展BarPlot,使它可以用不同的填充模式。你甚至可以扩展Axis来实现3D模式的图表。sts北方站长站

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

上一页 1 2 3 4 5 6 7 8 9

下一篇链接:Tapestry组件使用总结

上一篇链接:用XSLT和XML改进Struts

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面