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

📄 miningdialog.java

📁 数据挖掘的工具代码(包含fp-tree,appriory
💻 JAVA
字号:
/*ARMiner - Association Rules MinerCopyright (C) 2000  UMass/Boston - Computer Science DepartmentThis program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or (atyour option) any later version.This program is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307USAThe ARMiner Server was written by Dana Cristofor and LaurentiuCristofor.The ARMiner Client was written by Abdelmajid Karatihy, Xiaoyong Kuang,and Lung-Tsung Li.The ARMiner package is currently maintained by Laurentiu Cristofor(laur@cs.umb.edu).*//*   This file is a part of the ARMiner project.   (P)1999-2000 by ARMiner Client Team:   Abdelmajid Karatihy   Xiaoyong Kuang   Lung-Tsung Li*/import java.awt.*;import javax.swing.*;import java.net.*;import java.io.*;import java.awt.event.*;import java.util.*;/*  Maintenance log started on November 20th, 2000 by Laurentiu Cristofor  Nov. 20th, 2000   - made some style changes  Nov. 21st, 2000   - replaced a bunch of code by a call to                       MiningResult.fillCells                    - commented label font and color setting                    - added button shortcuts*/ /**  MiningDialog.java<P>  Interface for mining input.<P>*/public class MiningDialog extends CenteredDialog implements FocusListener{  public MiningDialog(javax.swing.JFrame parent, boolean modal)     throws ClientException  {    super (parent, "Find Association Rules", modal);    this.parent = parent;    addWindowListener (new java.awt.event.WindowAdapter () {	public void windowClosing (java.awt.event.WindowEvent evt) {	  closeDialog(evt);        }      });    Vector feedBack = Client.getDBConfig();    String response = feedBack.elementAt(0).toString();    //System.err.println(response);    if(response.equals("ERROR"))      {	throw new ClientException((String)feedBack.elementAt(1));      }    else      {	config = (DBConfig)feedBack.elementAt(1);	try	  {	    this.DB = config.listDatabases(Client.userName);	    this.AG = config.listAlgorithms(Client.userName);	  }	catch(DBConfigException e)	  {	    //System.err.println(e);	    throw new ClientException("DBException happened");	  }	isAdvanced = false;	selDatabase = new javax.swing.JComboBox(DB);	selAlgorithm = new javax.swing.JComboBox(AG);	// This line prevents the "Swing: checked access to system event queue" message seen in some browsers.	getRootPane().putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE);	getContentPane().setLayout(null);	//getContentPane().setBackground(new java.awt.Color(204,204,204));	//getContentPane().setForeground(java.awt.Color.darkGray);	getContentPane().setFont(new Font("Dialog", Font.PLAIN, 14));	setSize(600,600);	//setLocation(250, 50);	setLocation(getDialogCenteredLoc(parent));	//setTitle("Data Mining");	btnDefault.setText("Default");	getContentPane().add(btnDefault);	btnDefault.setBounds(5,0,80,30);	btnAdvanced.setText("Advanced");	getContentPane().add(btnAdvanced);	btnAdvanced.setBounds(95, 0, 93, 30);	lblWarning.setText("Can't get requested data from server");	getContentPane().add(lblWarning);	lblWarning.setForeground(java.awt.Color.red);	lblWarning.setFont(new Font("DialogInput", Font.BOLD, 14));	lblWarning.setBounds(195, 0,300 ,30);	lblWarning.setVisible(false);	JLabel2.setText("Database:");	getContentPane().add(JLabel2);	//JLabel2.setForeground(java.awt.Color.darkGray);	//JLabel2.setFont(new Font("DialogInput", Font.BOLD, 12));	JLabel2.setBounds(320, 85,80 ,30);	JLabel3.setText("Algorithm:");	getContentPane().add(JLabel3);	//JLabel3.setForeground(java.awt.Color.darkGray);	//JLabel3.setFont(new Font("DialogInput", Font.BOLD, 12));	JLabel3.setBounds(320,55,80,25);	getContentPane().add(selDatabase);	selDatabase.setBounds(410,85,130,28);	getContentPane().add(selAlgorithm);	selAlgorithm.setBounds(410,55,130,28);	JLabel4.setText("Minimum Confidence:");	getContentPane().add(JLabel4);	//JLabel4.setForeground(java.awt.Color.darkGray);	//JLabel4.setFont(new Font("DialogInput", Font.BOLD, 12));	JLabel4.setBounds(10,85,144,30);	JLabel5.setText("Minimum Support: ");	getContentPane().add(JLabel5);	//JLabel5.setForeground(java.awt.Color.darkGray);	//JLabel5.setFont(new Font("DialogInput", Font.BOLD, 12));	JLabel5.setBounds(10,55,125,25);	txtSupport.setText("");	getContentPane().add(txtSupport);	txtSupport.setBounds(160,55,129,25);	txtSupport.setNextFocusableComponent(txtConfidence);    	txtConfidence.setText("");	getContentPane().add(txtConfidence);	txtConfidence.setBounds(160,85,129,25);	getContentPane().add(palAdvanced);	palAdvanced.setBounds(10,115,500, 400);	palAdvanced.setVisible(false);	btnMining.setText("Mine");	btnMining.setMnemonic(KeyEvent.VK_M);	getContentPane().add(btnMining);	btnMining.setBounds(150,530,93,25);	btnRefresh.setText("Refresh");	btnRefresh.setMnemonic(KeyEvent.VK_R);	getContentPane().add(btnRefresh);	btnRefresh.setBounds(243,530,93,25);	btnCancel.setText("Close");	btnCancel.setMnemonic(KeyEvent.VK_C);	getContentPane().add(btnCancel);	btnCancel.setBounds(336,530,93,25);	SymAction lSymAction = new SymAction();	    	btnMining.addActionListener(lSymAction);	btnCancel.addActionListener(lSymAction);	btnDefault.addActionListener(lSymAction);	btnAdvanced.addActionListener(lSymAction);	btnRefresh.addActionListener(lSymAction);	selDatabase.addActionListener(lSymAction);      }  }  private Vector DB = new Vector();  private Vector AG = new Vector();  private boolean isAdvanced;  private javax.swing.JFrame parent;  private DBConfig config;  javax.swing.JLabel lblWarning = new javax.swing.JLabel();  javax.swing.JLabel JLabel1 = new javax.swing.JLabel();  javax.swing.JLabel JLabel2 = new javax.swing.JLabel();  javax.swing.JLabel JLabel3 = new javax.swing.JLabel();  javax.swing.JLabel JLabel4 = new javax.swing.JLabel();  javax.swing.JLabel JLabel5 = new javax.swing.JLabel();  javax.swing.JComboBox selDatabase;  javax.swing.JComboBox selAlgorithm ;  MiningAdvanced palAdvanced = new MiningAdvanced(this);  javax.swing.JTextField txtConfidence = new javax.swing.JTextField();  javax.swing.JTextField txtSupport = new javax.swing.JTextField();  javax.swing.JButton btnMining = new javax.swing.JButton();  javax.swing.JButton btnCancel = new javax.swing.JButton();  javax.swing.JButton btnRefresh = new javax.swing.JButton();  javax.swing.JButton btnDefault = new javax.swing.JButton();  javax.swing.JButton btnAdvanced = new javax.swing.JButton();  class SymAction implements java.awt.event.ActionListener  {    public void actionPerformed(java.awt.event.ActionEvent event)    {      Object object = event.getSource();      if (object == btnMining)	btnMining_actionPerformed(event);      else if (object == btnCancel)	btnCancel_actionPerformed(event);      else if (object == btnDefault)	btnDefault_actionPerformed(event);      else if (object == btnAdvanced)	btnAdvanced_actionPerformed(event);      else if (object == selDatabase)	selDatabase_actionPerformed(event);      else if (object == btnRefresh)	btnRefresh_actionPerformed(event);    }  }  /** Closes the dialog */  private void closeDialog(java.awt.event.WindowEvent evt)   {//GEN-FIRST:event_closeDialog    setVisible (false);    dispose ();    parent.repaint();  }      //Function need to be rewritten from focuslistener interface  public void focusGained(FocusEvent e)   {  }  public void focusLost(FocusEvent e)   {  }     public void setDBConfig()  {    Vector feedBack = Client.getDBConfig();    String response = feedBack.elementAt(0).toString();    if(response.equals("ERROR"))      {	JOptionPane.showMessageDialog(this, "Error in re_set DBConfig");      }    else      {	config = (DBConfig)feedBack.elementAt(1);      }  }      void btnDefault_actionPerformed(java.awt.event.ActionEvent event)  {    palAdvanced.setVisible(false);    isAdvanced = false;  }  void selDatabase_actionPerformed(java.awt.event.ActionEvent event)  {    if(isAdvanced == true)      btnAdvanced_actionPerformed(event);  }  private void copy(Vector v1, Vector v2)  {    v2.clear();    for(int i = 0; i < v1.size(); i++)      v2.add(v1.get(i));    return;  }		      void btnRefresh_actionPerformed(java.awt.event.ActionEvent event)  {    setDBConfig();    try      {	//copy(config.listDatabases(Client.userName),DB);	//copy(config.listAlgorithms(Client.userName), AG);	DB = config.listDatabases(Client.userName);	AG = config.listAlgorithms(Client.userName);	selDatabase.removeAllItems();	for(int i=0; i<DB.size(); i++)	  selDatabase.addItem(DB.elementAt(i));	selAlgorithm.removeAllItems();	for(int i=0; i<AG.size(); i++)	  selAlgorithm.addItem(AG.elementAt(i));	isAdvanced = false;	palAdvanced.setVisible(false);      }    catch(Exception e)      {	JOptionPane.showMessageDialog(this, "Error in refresh:" + e.toString());      }  }  void btnAdvanced_actionPerformed(java.awt.event.ActionEvent event)  {    try      {	String DBName = selDatabase.getSelectedItem().toString();	Vector db = new Vector();	db.add(DBName);	Vector feedBack = Client.getColumns(db);	if(feedBack.size()>0)	  {	    String response = feedBack.elementAt(0).toString();	    if (!response.equals("OK"))	      {		JOptionPane.showMessageDialog(this, feedBack.elementAt(0).toString());	      }	    else	      {		Vector DBColumns = (Vector)feedBack.elementAt(1);		palAdvanced.setList(DBColumns);		palAdvanced.setVisible(true);		isAdvanced = true;	      }	  }      }    catch(Exception e)      {	//System.err.println(e);	JOptionPane.showMessageDialog(this, "Exception in getting response from server" + e.toString());           }  }  boolean isEmpty(String value)  {    if(value.equals(new String("")))      {	return true;      }    else      return false;  }  void btnMining_actionPerformed(java.awt.event.ActionEvent event)  {    String action;    String database;    String algorithm;    Vector miningInput = new Vector();    Float minSupp;    Float minConf;    database = selDatabase.getSelectedItem().toString();    algorithm = selAlgorithm.getSelectedItem().toString();    if(isEmpty(txtSupport.getText().toString())        || isEmpty(txtConfidence.getText().toString()))      {	JOptionPane.showMessageDialog(this, "Minimum support and mimum confidence can not be empty");           }    else      {	try	  {	    minSupp = Float.valueOf(txtSupport.getText());	    minConf = Float.valueOf(txtConfidence.getText());	    if(minSupp.floatValue()<0 || minSupp.floatValue()>1 	       || minConf.floatValue()<0 || minConf.floatValue()>1){	      if(minSupp.floatValue()<0 || minSupp.floatValue()>1)		txtSupport.setText("");	      else		txtConfidence.setText("");	      JOptionPane.showMessageDialog(this, "Minimum support and mimum confidence must be values between 0 and 1");   	      return;	    }	    else	      {		minSupp = Float.valueOf(txtSupport.getText());		minConf = Float.valueOf(txtConfidence.getText());		miningInput.add(database);		miningInput.add(algorithm);		miningInput.add(minSupp);		miningInput.add(minConf);	      }	  }	catch(Exception f)	  {	    JOptionPane.showMessageDialog(this, f.toString()); 	    return;     	  }	if(isAdvanced == false)	  {	    action = new String("MINE");	  }	else	  {	    action = new String("MINEADV");	    miningInput.add(palAdvanced.getAnt());	    miningInput.add(palAdvanced.getCon());	    miningInput.add(palAdvanced.getIgn());	    try	      {		miningInput.add(palAdvanced.getMaxAnt());		miningInput.add(palAdvanced.getMinCon());	      }	    catch(ClientException e)	      {		miningInput.add(Integer.valueOf("0"));		miningInput.add(Integer.valueOf("0"));		JOptionPane.showMessageDialog(this, e.toString());         	      }	  }	//System.out.println(action);	try	  {	    Vector db = new Vector();	    db.add(database);	    Vector feedBack = Client.mine(action, miningInput);	    Vector column = Client.getColumns(db);        	    if(feedBack.size()>0 && column.size()>0)	      {		String response = feedBack.elementAt(0).toString();		String response1 = column.elementAt(0).toString();		if (!(response.equals("OK") 		      && response1.equals("OK")))		  {		    JOptionPane.showMessageDialog(this, feedBack.elementAt(1).toString());            		  }		else		  {		    Vector result = (Vector)feedBack.elementAt(1);		    Vector names = (Vector)column.elementAt(1);		    Vector cells = new Vector();		    MiningResult.fillCells(result, names, cells);		    		    Vector columnNames = new Vector();		    columnNames.add("Antecedent");		    columnNames.add("Consequent");		    columnNames.add("Support");		    columnNames.add("Confidence");		    MiningResult miningResult = 		      new MiningResult(cells, columnNames, names, this);		    miningResult.show();		  }	      }	  }	catch(Exception e)	  {	    JOptionPane.showMessageDialog(this, e.toString());      	  }      }  }  void btnCancel_actionPerformed(java.awt.event.ActionEvent event)  {    this.hide();    this.dispose();    parent.repaint();  }}

⌨️ 快捷键说明

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