•  

 

1 项目地址

Here!
用java gui界面实现了几种磁盘调度算法。

2 界面

175 52 157 36 159 106 108 72
【Swing编写图形用户界面】操作系统之磁盘调度算法图形界面和性能比较_图形界面
【Swing编写图形用户界面】操作系统之磁盘调度算法图形界面和性能比较_图形界面_02
【Swing编写图形用户界面】操作系统之磁盘调度算法图形界面和性能比较_图形界面_03
【Swing编写图形用户界面】操作系统之磁盘调度算法图形界面和性能比较_图形界面_04
【Swing编写图形用户界面】操作系统之磁盘调度算法图形界面和性能比较_Swing_05

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