`
夏莹_合肥
  • 浏览: 178405 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

GWTCanvas-GWT封装javascript实现绘图

    博客分类:
  • GWT
阅读更多

GWT官方和其他一些开源的项目都有提供绘图的功能,只要添加相关的jar包就可以了。我自己因为需要一些灵活的功能,只好自己去封装相关javascript来实现一些特殊的需求了。

这里我们先从附件下载别人写好的绘图javascript库。然后在我们的主html页面中添加引用

<script type="text/javascript" language="javascript" src="wz_jsgraphics.js"></script>

 

下面我们就可以对其用GWT进行封装了,核心是利用GWT的JSNI来实现java和js的通信。大家可以注意下,下面几乎每一个native方法都对应了一个java方法。这样我们就实现了GWTCanvas,可以用他来绘图了。

 

 

package com.yingxia.tonglin.client.commoncontrol;

public class GWTCanvas {

	private Object jsGraphics;
	
	public GWTCanvas(String panelId) {
		this.jsGraphics = this.createJsGraphics(panelId);
	}
	
	public void setStroke(int width) {
		setStroke(jsGraphics, width);
	}
	
	public void setColor(String color) {
		setColor(jsGraphics, color);
	}
	
	public void setFont(String fontFamily, String fontSize, String fontStyle) {
		setFont(jsGraphics, fontFamily, fontSize, fontStyle);
	}
	
	public void drawLine(int x1, int y1, int x2, int y2) {
		drawLine(jsGraphics, x1, y1, x2, y2);
	}
	
	public void drawEllipse(int x, int y, int width, int height) {
		drawEllipse(jsGraphics, x, y, width, height);
	}
	
	public void fillArc(int x, int y, int width, int height, int startAngle, int endAngle) {
		fillArc(jsGraphics, x, y, width, height, startAngle, endAngle);
	}
	
	public void drawString(String text, int x, int y) {
		drawString(jsGraphics, text, x, y);
	}
	
	public void paint() {
		paint(jsGraphics);
	}
	
	public void clear() {
		clear(jsGraphics);
	}
	
	private native void drawLine(Object jsGraphics, int x1, int y1, int x2, int y2) /*-{
		jsGraphics.drawLine(x1, y1, x2, y2);
	}-*/;
	
	private native void drawEllipse(Object jsGraphics, int x, int y, int width, int height) /*-{
		jsGraphics.drawEllipse(x, y, width, height);
	}-*/;
	
	private native void fillArc(Object jsGraphics, int x, int y, int width, int height, int startAngle, int endAngle) /*-{
		jsGraphics.fillArc(x, y, width, height, startAngle, endAngle);
	}-*/;
	
	private native void drawString(Object jsGraphics, String text, int x, int y) /*-{
		jsGraphics.drawString(text, x, y);
	}-*/;
	
	private native void paint(Object jsGraphics) /*-{
		jsGraphics.paint();
	}-*/;
	
	private native void clear(Object jsGraphics) /*-{
		jsGraphics.clear();
	}-*/;
	
	private native void setStroke(Object jsGraphics, int width) /*-{
		jsGraphics.setStroke(width);
	}-*/;
	
	private native void setColor(Object jsGraphics, String color) /*-{
		jsGraphics.setColor(color);
	}-*/;
	
	private native void setFont(Object jsGraphics, String fontFamily, String fontSize, String fontStyle) /*-{
		jsGraphics.setFont(fontFamily, fontSize, fontStyle);
	}-*/;
	
	private native Object createJsGraphics(String panelId) /*-{
		return new $wnd.jsGraphics(panelId);
	}-*/;
}

 

这里是我写程序,读取一个List集合,循环生成的一条链路图

  • 大小: 12.9 KB
分享到:
评论
3 楼 采菊东篱下 2014-03-01  
        
2 楼 xinayida 2011-06-10  
还是不会用。。。能写全一点么?
1 楼 Discard 2011-04-02  
不知能否楼主能发一份生成链路图的源码呢?
courage0617@qq.com

相关推荐

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包9

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包101

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    Java资源包01

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    JAVA上百实例源码以及开源项目源代码

    JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器...

    JAVA上百实例源码以及开源项目

    JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器...

Global site tag (gtag.js) - Google Analytics