当前位置:首页 > 面向对象设计一个项目
} public void setBackgroundColor(int color){ } public void draw(){ } }
package li.graphics; import java.awt.Font; import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.List;
import javax.swing.JButton; import javax.swing.JFrame;
import main.FileListView; import main.MainView;
import manage.file.IFileManage;
import manage.file.impl.FileMamage; import manage.file.impl.Type_File;
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
28
import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.DefaultCategoryDataset;
import sun.java2d.Disposer;
public class BarGraph extends Graph { private JFrame cht; private FileListView flistView =null; private long []totals; //统计大小结果数组 public BarGraph(){}
/**
* 更新数据 */
public void update( long []totals_) { totals = totals_; }
/**
* 更新数据 */
public void update() { //文件管理 IFileManage ifm = FileMamage.getInstance(); totals= ifm.getFileTotal(); }
/**
* 画柱状图 */ public void draw() { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); List typeList = Type_File.getTypeInfo();
29
Type_File type = null; for (int i = 0; i < totals.length; i++) { type = (Type_File)typeList.get(i); dataset.setValue(totals[i]/1024,\文件大小\ //输入数据 }
JFreeChart chart = ChartFactory.createBarChart3D( \文件统计图\图表标题
\文件种类\目录轴的显示标签 \数量\数值轴的显示标签 dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接 );
//从这里开始
CategoryPlot plot=chart.getCategoryPlot();//获取图表区域对象
CategoryAxis domainAxis=plot.getDomainAxis(); //水平底部列表 domainAxis.setLabelFont(new Font(\黑体\ //水平底部标题 domainAxis.setTickLabelFont(new Font(\宋体\ //垂直标题 ValueAxis rangeAxis=plot.getRangeAxis();//获取柱状 rangeAxis.setLabelFont(new Font(\黑体\ chart.getLegend().setItemFont(new Font(\黑体\ chart.getTitle().setFont(new Font(\宋体\设置标题字体 //柱体显示数值 BarRenderer mRenderer= new BarRenderer(); mRenderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); mRenderer.setItemLabelFont(new Font(\宋体\ mRenderer.setItemLabelsVisible(true); plot.setRenderer(mRenderer); //到这里结束,虽然代码有点多,但只为一个目的,解决汉字乱码问题 ChartPanel chp = new ChartPanel(chart,true); cht=new JFrame(\文件工具\
30
cht.setLayout(null); double lx = Toolkit.getDefaultToolkit().getScreenSize().getWidth(); double ly = Toolkit.getDefaultToolkit().getScreenSize().getHeight(); int x =(int)(lx-800)/2; int y =(int)(ly-600)/2; cht.setBounds(x,y, 800, 600); cht.setResizable(false); chp.setBounds(0,0, 800, 600); JButton bt ; Font f = new Font(\宋体\ for(int i = 0; i < typeList.size();i++){ bt = new JButton(((Type_File)typeList.get(i)).getTypeName()); bt.setBounds(135+105*i, 525, 90, 25); bt.setFont(f); bt.addActionListener(new buttonListenerImp()); cht.add(bt,0); }
for (int i = 0; i < totals.length; i++) { } JButton change = new JButton(\切换视图\ change.setBounds(0, 0, 100, 25); change.setVisible(true); change.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub setVisible(false); PieGraph pie = new PieGraph(); pie.update(FileMamage.getInstance().getFileTotal()); pie.draw(); pie.setVisible(true); } }); cht.add(change, 0); cht.add(chp, -1); cht.setVisible(true);//图形是否可见
31
共分享92篇相关文档