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

📄 guichooser.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
字号:
/*
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

/*
 *    GUIChooser.java
 *    Copyright (C) 1999 Len Trigg
 *
 */


package weka.gui;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Label;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;

import weka.gui.beans.KnowledgeFlow;
import weka.gui.experiment.Experimenter;
import weka.gui.explorer.Explorer;


/** 
 * The main class for the Weka GUIChooser. Lets the user choose
 * which GUI they want to run.
 *
 * @author Len Trigg (trigg@cs.waikato.ac.nz)
 * @author Mark Hall (mhall@cs.waikato.ac.nz)
 * @version $Revision$
 */
public class GUIChooser extends Frame {

  /** Click to open the simplecli */
  protected Button m_SimpleBut = new Button("Simple CLI");

  /** Click to open the Explorer */
  protected Button m_ExplorerBut = new Button("Explorer");

  /** Click to open the Explorer */
  protected Button m_ExperimenterBut = new Button("Experimenter");

  /** Click to open the KnowledgeFlow */
  protected Button m_KnowledgeFlowBut = new Button("KnowledgeFlow");

  /** The SimpleCLI */
  protected SimpleCLI m_SimpleCLI;

  /** The frame containing the explorer interface */
  protected JFrame m_ExplorerFrame;

  /** The frame containing the experiment interface */
  protected JFrame m_ExperimenterFrame;

  /** The frame containing the knowledge flow interface */
  protected JFrame m_KnowledgeFlowFrame;

  /** The weka image */
  Image m_weka = Toolkit.getDefaultToolkit().
    getImage(ClassLoader.getSystemResource("weka/gui/weka3.gif"));

  
  /**
   * Creates the experiment environment gui with no initial experiment
   */
  public GUIChooser() {

    super("Weka GUI Chooser");
    boolean haveSwing = true;
    try {
      Class c = Class.forName("javax.swing.JFrame");
    } catch (Exception ex) {
      haveSwing = false;
    }
    if (!haveSwing) {
      System.err.println("Swing is not installed");
      // Pop up dialog saying you get extra if you have swing
      setLayout(new GridLayout(2, 1));
      add(m_SimpleBut);
      add(new Label("Swing is not installed"));
    } else {
      Image icon = Toolkit.getDefaultToolkit().
	getImage(ClassLoader.getSystemResource("weka/gui/weka_icon.gif"));
      setIconImage(icon);
      setLayout(new BorderLayout());
      JPanel wbuts = new JPanel();
      wbuts.setBorder(BorderFactory.createTitledBorder("GUI"));
      wbuts.setLayout(new GridLayout(2, 2));
      wbuts.add(m_SimpleBut);
      wbuts.add(m_ExplorerBut);
      wbuts.add(m_ExperimenterBut);
      wbuts.add(m_KnowledgeFlowBut);
      add(wbuts, BorderLayout.SOUTH);

      JPanel wekaPan = new JPanel();
      wekaPan.setToolTipText("Weka, a native bird of New Zealand");
      ImageIcon wii = new ImageIcon(m_weka);
      JLabel wekaLab = new JLabel(wii);
      wekaPan.add(wekaLab);
      add(wekaPan, BorderLayout.CENTER);

      JPanel titlePan = new JPanel();
      titlePan.setLayout(new GridLayout(6,1));
      titlePan.setBorder(BorderFactory.createEmptyBorder(10, 5, 10, 5));
      titlePan.add(new JLabel("Waikato Environment for", 
			      SwingConstants.CENTER));
      titlePan.add(new JLabel("Knowledge Analysis", 
			      SwingConstants.CENTER));
      titlePan.add(new JLabel(""));
      titlePan.add(new JLabel("(c) 1999 - 2004", 
			      SwingConstants.CENTER));
      titlePan.add(new JLabel("University of Waikato", 
			      SwingConstants.CENTER));
      titlePan.add(new JLabel("New Zealand",
			      SwingConstants.CENTER));
      add(titlePan, BorderLayout.NORTH);
    }

    m_SimpleBut.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
	if (m_SimpleCLI == null) {
	  m_SimpleBut.setEnabled(false);
	  try {
	    m_SimpleCLI = new SimpleCLI();
	  } catch (Exception ex) {
	    throw new Error("Couldn't start SimpleCLI!");
	  }
	  m_SimpleCLI.addWindowListener(new WindowAdapter() {
	    public void windowClosing(WindowEvent w) {
	      m_SimpleCLI.dispose();
	      m_SimpleCLI = null;
	      m_SimpleBut.setEnabled(true);
	      checkExit();
	    }
	  });
	  m_SimpleCLI.setVisible(true);
	}
      }
    });

    m_ExplorerBut.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
	if (m_ExplorerFrame == null) {
	  m_ExplorerBut.setEnabled(false);
	  m_ExplorerFrame = new JFrame("Weka Explorer");
	  m_ExplorerFrame.getContentPane().setLayout(new BorderLayout());
	  m_ExplorerFrame.getContentPane()
	    .add(new Explorer(), BorderLayout.CENTER);
	  m_ExplorerFrame.addWindowListener(new WindowAdapter() {
	    public void windowClosing(WindowEvent w) {
	      m_ExplorerFrame.dispose();
	      m_ExplorerFrame = null;
	      m_ExplorerBut.setEnabled(true);
	      checkExit();
	    }
	  });
	  m_ExplorerFrame.pack();
	  m_ExplorerFrame.setSize(800, 600);
	  m_ExplorerFrame.setVisible(true);
	}
      }
    });

    m_ExperimenterBut.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
	if (m_ExperimenterFrame == null) {
	  m_ExperimenterBut.setEnabled(false);
	  m_ExperimenterFrame = new JFrame("Weka Experiment Environment");
	  m_ExperimenterFrame.getContentPane().setLayout(new BorderLayout());
	  m_ExperimenterFrame.getContentPane()
	    .add(new Experimenter(false), BorderLayout.CENTER);
	  m_ExperimenterFrame.addWindowListener(new WindowAdapter() {
	    public void windowClosing(WindowEvent w) {
	      m_ExperimenterFrame.dispose();
	      m_ExperimenterFrame = null;
	      m_ExperimenterBut.setEnabled(true);
	      checkExit();
	    }
	  });
	  m_ExperimenterFrame.pack();
	  m_ExperimenterFrame.setSize(800, 600);
	  m_ExperimenterFrame.setVisible(true);
	}
      }
    });

    m_KnowledgeFlowBut.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
	if (m_KnowledgeFlowFrame == null) {
	  m_KnowledgeFlowBut.setEnabled(false);
	  m_KnowledgeFlowFrame = new JFrame("Weka KnowledgeFlow Environment");
	  m_KnowledgeFlowFrame.getContentPane().setLayout(new BorderLayout());
	  m_KnowledgeFlowFrame.getContentPane()
	    .add(new KnowledgeFlow(), BorderLayout.CENTER);
	  m_KnowledgeFlowFrame.addWindowListener(new WindowAdapter() {
	    public void windowClosing(WindowEvent w) {
	      m_KnowledgeFlowFrame.dispose();
	      m_KnowledgeFlowFrame = null;
	      m_KnowledgeFlowBut.setEnabled(true);
	      checkExit();
	    }
	  });
	  m_KnowledgeFlowFrame.pack();
	  m_KnowledgeFlowFrame.setSize(800, 600);
	  m_KnowledgeFlowFrame.setVisible(true);
	}
      }
    });

    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent w) {
	dispose();
	checkExit();
      }
    });
    pack();
  }

  /**
   * Kills the JVM if all windows have been closed.
   */
  private void checkExit() {

    if (!isVisible()
	&& (m_SimpleCLI == null)
	&& (m_ExplorerFrame == null)
	&& (m_ExperimenterFrame == null)
	&& (m_KnowledgeFlowFrame == null)) {
      System.exit(0);
    }
  }
  
  /**
   * Tests out the GUIChooser environment.
   *
   * @param args ignored.
   */
  public static void main(String [] args) {

    try { // use system look & feel
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {}
    try {
      GUIChooser c = new GUIChooser();
      c.setVisible(true);
    } catch (Exception ex) {
      ex.printStackTrace();
      System.err.println(ex.getMessage());
    }
  }
}

⌨️ 快捷键说明

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