【Swing編寫圖形用戶界面】操作系統之磁盤調度算法圖形界面和性能比較

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;
	
}
}


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