使用ChartDirector繪製自己的儀表盤及中文問題

 

ChartDirector的文檔裏面有一個儀表盤的實例,效果如下圖:



 但是這個不符合自己的要求,需要做相應的修改,要達到的效果如下圖




 

 實現代碼如下:

public void createChart(ChartViewer viewer,int index){
		double value = 30.5;
		//創建一個AngularMeter對象,大小爲200*115
		//並設置背影顏色,後面的兩個參數是用來設置邊框顏色和大小的,這裏不要邊框,所以去掉
		AngularMeter m = new AngularMeter(200,115,0xffffff);
                                m.setDefaultFonts("simsun.ttc");	//設置字體,不然中文出現亂碼	
                     m.setRoundedFrame();
		//設置儀表盤中心在(100,100),半徑爲85像素,並且跨度在-90到+90
		m.setMeter(100, 100, 85, -90, 90);
		//儀表盤的界限0到100,每個刻度以20爲單位,較小的刻度以10爲單位,最小的以5爲刻度。
		m.setScale(0, 100,20,10,5);
		//設置0-60爲綠色(0X66FF66)區域,70到85爲空白區域		
		m.addZone(0, 60,70,85,0x00aa00);
//		m.setBackground(0x333333,0x66ff66,4);//第一個參數設置背景顏色,第二個設置背景邊緣顏色,第三個設置陰影
		//設置60-80爲黃色(ffff33)區域
		m.addZone(60, 80,70,85,0xcccc00);
		//設置80-100爲紅色區域(ff6666)
		m.addZone(80, 100,70,85,0xaa0000);
		m.addZone(0, 100,70,70,0x000000);//在內部顏色緣加一條黑色的線
		//添加一個文本標籤,使用12號,Arial Bold字體
		m.addText(100, 60,"中文","宋體",12,Chart.TextColor, Chart.Center);
		//添加一個文本標籤在右上角用來顯示值,字體爲Arial,字號爲8,顏色爲0xffffff
		//格式化爲2位小數,並使用黑色背景,1像素的3D陰影
		m.addText(156,8, m.formatValue(value, "2"), "Arial",8,0xffffff).setBackground(0x000000, 0, -1);
		//添加指針,第一個參數是所在指向的位置,第二個和第三個是指針邊緣顏色和填充顏色,後面是設置指針在顏色的下方
		//這裏還可以設置指針的形狀,具體可以參考文檔裏面的Multi-Pointer Angular Meter實例
		m.addPointer(value, 0xffffff,0x000000).setZOrder(0x100);
		//輸出圖形
//		String chart1URL = m.makeSession(request, "chart1");
		viewer.setImage(m.makeImage());
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章