⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dispersionkmeanpanel.java

📁 一个用于排队系统仿真的开源软件,有非常形象的图象仿真过程!
💻 JAVA
字号:
package jmt.engine.jwat.workloadAnalysis.clustering.kMean.panels;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

import javax.swing.JPanel;
import javax.swing.JScrollPane;

import jmt.engine.jwat.workloadAnalysis.chart.DispKMeanMatrix;
import jmt.engine.jwat.workloadAnalysis.utils.JavaWatColor;
import jmt.engine.jwat.workloadAnalysis.utils.ModelWorkloadAnalysis;

public class DispersionkMeanPanel extends JPanel {
	private ModelWorkloadAnalysis model;
	private int clustering;
	private int clusters;
	private DispKMeanMatrix matrix;
	private boolean redraw = true;
	public DispersionkMeanPanel(ModelWorkloadAnalysis model,int clustering,int clusters){
		this.setLayout(new BorderLayout());
		this.model = model;
		this.clustering = clustering;
		this.clusters = clusters;
		matrix = new DispKMeanMatrix(model,-1);
		this.add(matrix,BorderLayout.CENTER);
		matrix.setClustering(clustering,clusters);
		this.add(new JScrollPane(new myPanel(),JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER),BorderLayout.EAST);
	}
	public void setClustering(int cluster){
		clusters = cluster;
		redraw = true;
	}
	private class myPanel extends JPanel{
		private int START_SQUARE_H = 5;
		private int START_SQUARE_W = 5;
		private int SQUARE_L = 10;
		private int LINE_H = 10;
		private BufferedImage legenda;
		public myPanel(){
			this.setLayout(new FlowLayout());
			setPreferredSize(new Dimension(110,(SQUARE_L + LINE_H) * (clusters+1)));
			legenda = new BufferedImage(110,(SQUARE_L + LINE_H) * (clusters+1),BufferedImage.TYPE_INT_RGB);
		}
		public void paint(Graphics g1){
			if(redraw){
				redraw = false;
				Graphics2D g = (Graphics2D) legenda.getGraphics();
				g.setColor(Color.WHITE);
				g.fillRect(0,0,110,(SQUARE_L + LINE_H) * (clusters + 1));
				for(int i = 1 ; i <= clusters + 1;i++){
					g.setColor(JavaWatColor.getColor((i-1)));
					g.fillRect(START_SQUARE_W,
							(START_SQUARE_H  + (SQUARE_L + LINE_H) * (i - 1)),
							SQUARE_L,SQUARE_L);
					g.setColor(Color.BLACK);
					g.drawString("Cluster " + i,
							START_SQUARE_W + SQUARE_L + SQUARE_L,
							(START_SQUARE_H  + (SQUARE_L + LINE_H) * (i - 1) + LINE_H));
				}
			}
			g1.drawImage(legenda,0,0,null);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -