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

📄 clustering_analyze_frame.java~48~

📁 分别是模糊识别、模糊聚类、模糊控制的实例代码
💻 JAVA~48~
字号:
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) {            //执行最大树法
    param=Double.parseDouble(jTextField_param.getText());
    bc=new Bigtree_Clustering(Sim_Matrix,row,row);
    Clustering_result=bc.Clustering_exe(param);
    jTextArea_Clustering.setText(Clustering_result);
    Clustering_result="";
  }

  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 + -