1 項目地址
Here!
用java gui界面實現了幾種磁盤調度算法。
2 界面
175 52 157 36 159 106 108 72
3 比較代碼
package caozuoxitongkeshe;
import java.awt.Font;
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.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
//這是柱形圖的另一種效果,其實跟第一種相比都只有數據集發生了變化,再無其他變化
public class BarChart1 {
ChartPanel frame1;
public BarChart1(){
CategoryDataset dataset = getDataSet();
JFreeChart chart = ChartFactory.createBarChart3D(
"磁盤調度算法性能比較", // 圖表標題
"算法種類", // 目錄軸的顯示標籤
"平均磁道長度", // 數值軸的顯示標籤
dataset, // 數據集
PlotOrientation.VERTICAL, // 圖表方向:水平、垂直
true, // 是否顯示圖例(對於簡單的柱狀圖必須是false)
false, // 是否生成工具
false // 是否生成URL鏈接
);
//從這裏開始
CategoryPlot plot=chart.getCategoryPlot();//獲取圖表區域對象
CategoryAxis domainAxis=plot.getDomainAxis(); //水平底部列表
domainAxis.setLabelFont(new Font("黑體",Font.BOLD,14)); //水平底部標題
domainAxis.setTickLabelFont(new Font("宋體",Font.BOLD,12)); //垂直標題
ValueAxis rangeAxis=plot.getRangeAxis();//獲取柱狀
rangeAxis.setLabelFont(new Font("黑體",Font.BOLD,15));
chart.getLegend().setItemFont(new Font("黑體", Font.BOLD, 15));
chart.getTitle().setFont(new Font("宋體",Font.BOLD,20));//設置標題字體
//到這裏結束,雖然代碼有點多,但只爲一個目的,解決漢字亂碼問題
frame1=new ChartPanel(chart,true); //這裏也可以用chartFrame,可以直接生成一個獨立的Frame
}
private static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(Arithmetic.a, "SSTF", "SSTF");
dataset.addValue(Arithmetic.b, "FCFS", "FCFS");
dataset.addValue(Arithmetic.c, "SCAN", "SCAN");
dataset.addValue(Arithmetic.e, "CSCAN", "CSCAN");
return dataset;
}
public ChartPanel getChartPanel(){
return frame1;
}
}