十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
JFreeChart------------它是一種組件技術(shù),專用于在java中實(shí)現(xiàn)圖形報(bào)表

成都創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元延長(zhǎng)做網(wǎng)站,已為上家服務(wù),為延長(zhǎng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
----------餅圖,柱狀圖,折線圖
JFreeChart它是一種獨(dú)立圖表技術(shù),它與struts2本身并無關(guān)系,只不過,它可以與struts2配合使用
餅圖的步驟:
1、創(chuàng)建一個(gè)web工程
2、導(dǎo)入struts2框架(core,struts2-jfreeChart)
3、向工程導(dǎo)入(jfreechart.jar,jcommon.jar)
4、創(chuàng)建BaseAction繼承于ActionSupport,并且,在類中,聲明一個(gè)屬性 JFreeChart chart;并且生成set,get方法
5、編寫ChartAction類,繼承于BaseAction
6、在ChartAction類中,編寫 showPie()用于顯示餅圖
7、在struts.xml配置當(dāng)前action
8、在index.jsp配置,通過img src="chart!showPie.action"進(jìn)入到指定方法
=================================================================================================================
9、編寫ChartDao類,模擬從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)
//得到餅圖需要的數(shù)據(jù)集
public DefaultPieDataset getPieDataset(){
DefaultPieDataset dp = new DefaultPieDataset();
dp.setValue("聯(lián)想",321);
dp.setValue("華碩",189);
dp.setValue("戴爾",98);
dp.setValue("IBM",213);
dp.setValue("Apple",287);
dp.setValue("惠普",120);
dp.setValue("SONY",87);
return dp;
}
==============================================================================================================
10、在ChartAction中的showPie方法,生成餅圖
public String showPie(){
//得以要顯示的數(shù)據(jù)集,根據(jù)數(shù)據(jù),生成餅圖
DefaultPieDataset dp = dao.getPieDataset();
//chart = ChartFactory.createPieChart("標(biāo)題",要顯示在餅圖中的數(shù)據(jù)集,是否顯示顏色說明,"是否顯示工具提示","是否顯示網(wǎng)絡(luò)地址 ");
chart = ChartFactory.createPieChart("一季度各電腦品牌銷售匯總",dp,true,false,false);
return "success";
}
=============================================================================================================
11、在struts.xml文件,進(jìn)行相關(guān)配置
package name="struts2" extends="struts-default"
result-types
result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"/
/result-types
action name="chart" class="org.java.web.ChartAction"
result name="success" type="chart"
param name="width"800/param
param name="height"600/param
/result
/action
/package
=================================================================================================================
12、解決亂碼
標(biāo)題區(qū)的亂碼
Font f1 = new Font("隸書",Font.BOLD,40);
TextTitle tt = new TextTitle("一季度各電腦品牌銷售匯總",f1);
chart.setTitle(tt);//綁定標(biāo)題
顏色提示區(qū)亂碼
Font f2 = new Font("隸書",Font.BOLD,20);
LegendTitle lt = chart.getLegend();
lt.setItemFont(f2);//設(shè)置該區(qū)域的字體
解決餅圖中的亂碼
PiePlot pp = (PiePlot) chart.getPlot();//得到餅圖區(qū)域
pp.setLabelFont(f2);//設(shè)置餅圖區(qū)域中的字體
=============================================================================================================
13、設(shè)置餅圖中要顯示的數(shù)據(jù)格式
//該對(duì)象,用于指定餅圖要顯示的數(shù)據(jù)格式 //0:key //1:value 2:百分比
StandardPieSectionLabelGenerator sc = new StandardPieSectionLabelGenerator("{0},{1}臺(tái),{2}");
//把顯示的格式,綁定餅圖中
pp.setLabelGenerator(sc);
需要完整版請(qǐng)聯(lián)系我
System.out.format("%4s%5s", " ", "*****\n");
System.out.format("%3s%1s%7s", " ", "*", "*\n");//"\n"長(zhǎng)度是1
System.out.format("%2s%1s%7s", " ", "* _", "_ *\n");
System.out.format("%1s%3s%4s%4s", " *", "o", "o", "*\n");
System.out.format("%1s%6s%7s", "*", "|", "*\n");
System.out.format("%1s %5s %5s", "*", "+", "*\n");
System.out.format("%1s %2s %3s", " *", "╲___╱", "*\n");
System.out.format("%3s%1s%7s", " ", "*", "*\n");
System.out.format("%4s%5s", " ", "*****\n");
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class design extends Frame {
private String title = "笑臉";
design() {
this.setTitle("變臉小程序");
}
public void paint(Graphics g) {
g.drawArc(100, 200, 100, 60, 0, 180);
g.drawArc(260, 200, 100, 60, 0, 180);
if (!title.equals("笑臉")) {
g.drawArc(180, 260, 100, 60, 0, -180); // 畫弧---嘴巴
title = "笑臉";
} else {
g.drawArc(180, 260, 100, 60, 0, 180); // 畫弧---嘴巴
title = "哭臉";
}
g.drawString(title, 80, 100);
g.drawOval(80, 100, 300, 300);
}
public static void main(String args[]) {
design D = new design();
D.setSize(new Dimension(500, 500));
D.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
D.addMouseListener(new MouseClick(D));
D.setVisible(true);
}
}
class MouseClick implements MouseListener {// 實(shí)現(xiàn)鼠標(biāo)監(jiān)聽事件
private design d;
public MouseClick() {
}
public MouseClick(design d) {
this.d = d;
}
public void mouseClicked(MouseEvent e) {// 這這里做鼠標(biāo)單機(jī)處理
// TODO Auto-generated method stub
if (d != null) {
d.repaint();
}
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
已經(jīng)做好了,順便幫你調(diào)整一下格式
背景音樂: Toolkit.getAudioClip("*.wav").loop();
游戲結(jié)束后調(diào)用stop();
象Windows自帶的掃雷,表情其實(shí)是作為一個(gè)Button的Icon,你可以在判斷是否為雷的邏輯中追加,button.setIcon(createImageIcon("哭臉.gif"));
笑臉則可以button.setIcon(createImageIcon("笑臉.gif"));
Thread.sleep(100);button.setIcon(createImageIcon("正常.gif"));