📄 dispersionkmeanpanel.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 + -