📄 clustering_analyze_frame.java~45~
字号:
package fuzzy_project;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.math.*;public class Clustering_Analyze_Frame extends JFrame { private int row; private int col; private double O_Matrix[][]; //接受原始矩阵 private double Sim_Matrix[][]; //相似矩阵 private double Fin_Matrix[][]; //结果矩阵 private byte Cut_Matrix[][]; //参数截矩阵 private String Clustering_result; //分类结果 private double param; //分类参数 BigDecimal temp; Param_Matrix pm; Closure_Clustering cc; Direct_Clustering dc; Bigtree_Clustering bc; JPanel jPanel = new JPanel(); JLabel jLabel_note1 = new JLabel(); JButton jButton_avg_min = new JButton(); JButton jButton2 = new JButton(); JButton jButton_max_min = new JButton(); JButton jButton_ang_cos = new JButton(); JButton jButton_abs_sub = new JButton(); JButton jButton_qua_acc = new JButton(); JScrollPane jScrollPane = new JScrollPane(); JTable jTable_Sim_Matrix; JLabel jLabel_note2 = new JLabel(); JButton jButton_direct_clustering = new JButton(); JButton jButton_max_tree = new JButton(); JButton jButton_pass_closure = new JButton(); JLabel jLabel_empty1 = new JLabel(); JTextField jTextField_param=new JTextField(); JLabel jLabel_note3 = new JLabel(); JLabel jLabel1 = new JLabel(); JScrollPane jScrollPane_clustering = new JScrollPane(); JTextArea jTextArea_Clustering = new JTextArea(); public Clustering_Analyze_Frame(int r,int c,double temp_Matrix[][]) { try { row=r; col=c; O_Matrix=temp_Matrix; Clustering_result=""; jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setResizable(false); this.setSize(600, 600); this.setTitle("聚类分析"); this.setLocation(212,140); jLabel_note1.setFont(new java.awt.Font("Serif", 1, 15)); jLabel_note1.setPreferredSize(new Dimension(580, 20)); jLabel_note1.setText("选择生成相似矩阵的算法"); jButton_avg_min.setText("算术平均最小法"); jButton_avg_min.addActionListener(new Clustering_Analyze_Frame_jButton_avg_min_actionAdapter(this)); jButton2.setText("jButton2"); jButton_max_min.setText("最大/小值法"); jButton_max_min.addActionListener(new Clustering_Analyze_Frame_jButton_max_min_actionAdapter(this)); jButton_ang_cos.setText("j夹角余弦法"); jButton_ang_cos.addActionListener(new Clustering_Analyze_Frame_jButton_ang_cos_actionAdapter(this)); jButton_abs_sub.setText("绝对值减数法"); jButton_abs_sub.addActionListener(new Clustering_Analyze_Frame_jButton_abs_sub_actionAdapter(this)); jButton_qua_acc.setText("数量积法"); jButton_qua_acc.addActionListener(new Clustering_Analyze_Frame_jButton_qua_acc_actionAdapter(this)); jTable_Sim_Matrix=new JTable(row,row); jTable_Sim_Matrix.setEnabled(false); jTable_Sim_Matrix.setSelectionBackground(Color.lightGray); jScrollPane.setPreferredSize(new Dimension(580, 400)); jLabel_note2.setFont(new java.awt.Font("Serif", 1, 15)); jLabel_note2.setPreferredSize(new Dimension(100, 20)); jLabel_note2.setText("选择聚类算法"); jButton_direct_clustering.setEnabled(false); jButton_direct_clustering.setText("直接聚类法"); jButton_direct_clustering.addActionListener(new Clustering_Analyze_Frame_jButton_direct_clustering_actionAdapter(this)); jButton_max_tree.setEnabled(false); jButton_max_tree.setText("j最大树法"); jButton_max_tree.addActionListener(new Clustering_Analyze_Frame_jButton_max_tree_actionAdapter(this)); jButton_pass_closure.setEnabled(false); jButton_pass_closure.setText("传递闭包法"); jButton_pass_closure.addActionListener(new Clustering_Analyze_Frame_jButton_pass_closure_actionAdapter(this)); jLabel_empty1.setPreferredSize(new Dimension(45, 20)); jLabel_empty1.setText(""); jTextField_param.setPreferredSize(new Dimension(50, 22)); jTextField_param.setEditable(false); jTextField_param.setText(""); jTextField_param.addKeyListener(new Clustering_Analyze_Frame_jTextField_param_keyAdapter(this)); jLabel_note3.setFont(new java.awt.Font("Serif", 1, 15)); jLabel_note3.setPreferredSize(new Dimension(100, 20)); jLabel_note3.setText("输入分类参数"); jLabel1.setFont(new java.awt.Font("Serif", 1, 15)); jLabel1.setPreferredSize(new Dimension(580, 20)); jLabel1.setText("分类结果"); jScrollPane_clustering.setPreferredSize(new Dimension(580, 40)); jTextArea_Clustering.setBackground(Color.yellow); jTextArea_Clustering.setFont(new java.awt.Font("Serif", 1, 15)); jTextArea_Clustering.setEditable(false); jScrollPane.getViewport().add(jTable_Sim_Matrix, null); this.getContentPane().add(jPanel, BorderLayout.CENTER); jPanel.add(jLabel_note1, null); jPanel.add(jButton_qua_acc, null); jPanel.add(jButton_abs_sub, null); jPanel.add(jButton_ang_cos, null); jPanel.add(jButton_max_min, null); jPanel.add(jButton_avg_min, null); jPanel.add(jButton2, null); jPanel.add(jScrollPane, null); jPanel.add(jLabel_note3, null); jPanel.add(jTextField_param, null); jPanel.add(jLabel_note2, null); jPanel.add(jButton_pass_closure, null); jPanel.add(jButton_direct_clustering, null); jPanel.add(jButton_max_tree, null); jPanel.add(jLabel_empty1, null); jPanel.add(jLabel1, null); jPanel.add(jScrollPane_clustering, null); jScrollPane_clustering.getViewport().add(jTextArea_Clustering, null); } void jButton_qua_acc_actionPerformed(ActionEvent e) { //执行数量积算法 qua_acc qa=new qua_acc(); Sim_Matrix=qa.exe(O_Matrix,row,col); for(int i=0;i<row;i++) for(int j=0;j<row;j++) { temp=new BigDecimal(Sim_Matrix[i][j]); Sim_Matrix[i][j]=temp.setScale(1,temp.ROUND_HALF_UP).doubleValue(); //那模糊值精确到小数点后一位 jTable_Sim_Matrix.setValueAt(Double.toString((Sim_Matrix[i][j])),i,j); jTable_Sim_Matrix.repaint(); } jTextField_param.setEditable(true); } void jButton_abs_sub_actionPerformed(ActionEvent e) { // abs_sub as=new abs_sub(); Sim_Matrix=as.exe(O_Matrix,row,col); for(int i=0;i<row;i++) for(int j=0;j<row;j++) { temp=new BigDecimal(Sim_Matrix[i][j]); Sim_Matrix[i][j]=temp.setScale(1,temp.ROUND_HALF_UP).doubleValue(); jTable_Sim_Matrix.setValueAt(Double.toString((Sim_Matrix[i][j])),i,j); jTable_Sim_Matrix.repaint(); } jTextField_param.setEditable(true); } void jButton_ang_cos_actionPerformed(ActionEvent e) { // ang_cos ac=new ang_cos(); Sim_Matrix=ac.exe(O_Matrix,row,col); for(int i=0;i<row;i++) for(int j=0;j<row;j++) { temp=new BigDecimal(Sim_Matrix[i][j]); Sim_Matrix[i][j]=temp.setScale(1,temp.ROUND_HALF_UP).doubleValue(); jTable_Sim_Matrix.setValueAt(Double.toString((Sim_Matrix[i][j])),i,j); jTable_Sim_Matrix.repaint(); } jTextField_param.setEditable(true); } void jButton_max_min_actionPerformed(ActionEvent e) { // max_min mm=new max_min(); Sim_Matrix=mm.exe(O_Matrix,row,col); for(int i=0;i<row;i++) for(int j=0;j<row;j++) { temp=new BigDecimal(Sim_Matrix[i][j]); Sim_Matrix[i][j]=temp.setScale(1,temp.ROUND_HALF_UP).doubleValue(); jTable_Sim_Matrix.setValueAt(Double.toString((Sim_Matrix[i][j])),i,j); jTable_Sim_Matrix.repaint(); } jTextField_param.setEditable(true); } void jButton_avg_min_actionPerformed(ActionEvent e) { // avg_min am=new avg_min(); Sim_Matrix=am.exe(O_Matrix,row,col); for(int i=0;i<row;i++) for(int j=0;j<row;j++) { temp=new BigDecimal(Sim_Matrix[i][j]); Sim_Matrix[i][j]=temp.setScale(1,temp.ROUND_HALF_UP).doubleValue(); jTable_Sim_Matrix.setValueAt(Double.toString((Sim_Matrix[i][j])),i,j); jTable_Sim_Matrix.repaint(); } jTextField_param.setEditable(true); } void jButton_pass_closure_actionPerformed(ActionEvent e) { //执行传递闭包法 Pass_closure pc=new Pass_closure(); Fin_Matrix=pc.exe(Sim_Matrix,row,row); for(int i=0;i<row;i++) //在jTable_Sim_Matrix上显示模糊等价矩阵 for(int j=0;j<row;j++) { temp=new BigDecimal(Fin_Matrix[i][j]); Fin_Matrix[i][j]=temp.setScale(1,temp.ROUND_HALF_UP).doubleValue(); jTable_Sim_Matrix.setValueAt(Double.toString((Fin_Matrix[i][j])),i,j); jTable_Sim_Matrix.repaint(); } param=Double.parseDouble(jTextField_param.getText()); pm=new Param_Matrix(Fin_Matrix,row,row,param); Cut_Matrix=pm.exe(); cc=new Closure_Clustering(Cut_Matrix,row,row); Clustering_result=cc.exe(); jTextArea_Clustering.setText(Clustering_result); Clustering_result=""; } void jButton_direct_clustering_actionPerformed(ActionEvent e) { //执行直接聚类法 param=Double.parseDouble(jTextField_param.getText()); pm=new Param_Matrix(Sim_Matrix,row,row,param); Cut_Matrix=pm.exe(); dc=new Direct_Clustering(Cut_Matrix,row,row); Clustering_result=dc.exe(); jTextArea_Clustering.setText(Clustering_result); Clustering_result=""; } void jButton_max_tree_actionPerformed(ActionEvent e) { //执行最大树法System.out.print(row+"@@"+col); for(int i=0;i<row;i++) for(int j=0;j<col;j++) System.out.print(Sim_Matrix[i][j]); } void jTextField_param_keyTyped(KeyEvent e) { jButton_pass_closure.setEnabled(true); jButton_direct_clustering.setEnabled(true); jButton_max_tree.setEnabled(true); } protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); }}}class Clustering_Analyze_Frame_jButton_qua_acc_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_qua_acc_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_qua_acc_actionPerformed(e); }}class Clustering_Analyze_Frame_jButton_abs_sub_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_abs_sub_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_abs_sub_actionPerformed(e); }}class Clustering_Analyze_Frame_jButton_ang_cos_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_ang_cos_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_ang_cos_actionPerformed(e); }}class Clustering_Analyze_Frame_jButton_max_min_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_max_min_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_max_min_actionPerformed(e); }}class Clustering_Analyze_Frame_jButton_avg_min_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_avg_min_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_avg_min_actionPerformed(e); }}class Clustering_Analyze_Frame_jButton_pass_closure_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_pass_closure_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_pass_closure_actionPerformed(e); }}class Clustering_Analyze_Frame_jTextField_param_keyAdapter extends java.awt.event.KeyAdapter { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jTextField_param_keyAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void keyTyped(KeyEvent e) { adaptee.jTextField_param_keyTyped(e); }}class Clustering_Analyze_Frame_jButton_direct_clustering_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_direct_clustering_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_direct_clustering_actionPerformed(e); }}class Clustering_Analyze_Frame_jButton_max_tree_actionAdapter implements java.awt.event.ActionListener { Clustering_Analyze_Frame adaptee; Clustering_Analyze_Frame_jButton_max_tree_actionAdapter(Clustering_Analyze_Frame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton_max_tree_actionPerformed(e); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -