为什么没有鼠标提示信息(struts2+jfreechart)

飞机 发布于 2009/08/10 16:48
阅读 1K+
收藏 0
public String report()throws Exception
	{
		
		//HttpServletRequest request=ServletActionContext.getRequest();
		
		DefaultCategoryDataset  dataset= new DefaultCategoryDataset();
		
		dataset.addValue(100, "北京", "北京");
		dataset.addValue(100, "上海", "上海");
		dataset.addValue(100, "广州", "广州");

		CategoryDataset d = dataset;
		
		 chart = ChartFactory.createBarChart3D(
				"水果产量图", // 图表标题
				"水果", // 目录轴的显示标签
				"产量", // 数值轴的显示标签
				d, // 数据集
				PlotOrientation.VERTICAL, // 图表方向:水平、垂直
				true, 	// 是否显示图例(对于简单的柱状图必须是false)
				true, 	// 是否生成工具
				false 	// 是否生成URL链接
				);

				CategoryPlot plot = (CategoryPlot)chart.getPlot(); 
				
				
				//取得X轴 
				CategoryAxis categoryAxis =(CategoryAxis)plot.getDomainAxis(); 
				
				categoryAxis.setLowerMargin(0.1);
				
				categoryAxis.setUpperMargin(0.1);
				
				categoryAxis.setTickLabelFont(new Font("楷书",Font.BOLD,12));
				
				categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
				
				plot.setDomainAxis(categoryAxis);
				
				//BarRenderer3D render=new BarRenderer3D();
				
					BarRenderer render = (BarRenderer) plot.getRenderer();
			
					render.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
					
					render.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
					
					render.setItemLabelsVisible(true);
					//此处为鼠标提示信息 可以浏览到柱形图 却没有提示信息为什么?
					StandardCategoryToolTipGenerator g = new StandardCategoryToolTipGenerator("{2}",new DecimalFormat("0.00"));
					
					render.setToolTipGenerator(g);
					

				    
					plot.setRenderer(render);
					
				
				
				return "report";
				
				}

为什么没有提示信息

加载中
0
红薯
红薯

你没有明白网页上图片的鼠标提示的原理,那是由HTML的标签 Map 来处理的。

你这些代码只是生成了图片,还需要用 ChartUtilities.writeImageMap 来生成对应的 Map 数据,如下所示

<MAP NAME="chartMap">
<AREA SHAPE="RECT" COORDS="81,15,126,254" href="?series=0&category=100" title="100 = 7,048"
< code sample is too wide > onclick="javascript:clickChart('100');return false;">
<AREA SHAPE="RECT" COORDS="143,27,188,255" href="?series=0&category=200" title="200 = 6,721"
< code sample is too wide > onclick="javascript: clickChart ('200');return false;">
<AREA SHAPE="RECT" COORDS="205,54,250,255" href="?series=0&category=300" title="300 = 5,929"
< code sample is too wide > onclick="javascript: clickChart ('300');return false;">
<AREA SHAPE="RECT" COORDS="267,85,312,255" href="?series=0&category=400" title="400 = 5,005"
< code sample is too wide > onclick="javascript: clickChart ('400');return false;">
<AREA SHAPE="RECT" COORDS="329,17,374,255" href="?series=0&category=Diet" title="Diet = 7,017" onclick="javascript:
< code sample is too wide > clickChart ('Diet');return false;">
</MAP>

详细的内容请认真阅读下面这篇文章

http://www.ibm.com/developerworks/cn/java/l-jfreechart/

0
飞机

大哥  怎么生成 

 render.setToolTipGenerator(new StandardCategoryToolTipGenerator());

 PrintWriter   pwMap   =   new   PrintWriter("test"); 

ChartUtilities.writeImageMap(pwMap,filename, info,true);

加上这段也没用 呀

它不会在页面生成map 是不是serlvet生产热区 不是这么写 struts2它没有生产图片 我不知道它那个图像是从哪里来的 有点像swing产生的图形界面一样

我单独的不使用struts2 结合的 用输出流 生成了图片和map  可是读取的时候 图片是出来 但是map又没出来 usemap的时候 生成的代码为usemap="jfreechart111"也就是那张图片的名称 为什么 是不是jsp页面要设置一下上面 才可以识别图片热区

要怎样才能有热区呢 在我这个方法里加什么代码?

0
红薯
红薯

必须是两步

1. 生成图片输出
2. 生成Map数据,并将Map数据添加到JSP页面中

0
飞机

..............................

返回顶部
顶部