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

📄 uimainframe.java

📁 这是一个从音频信号里提取特征参量的程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * @(#) UIMainFrame.java  1.10 10/09/02
 *
 * Copyright ***,  All Rights Reserved.
 * 
 * This software is the proprietary information of ********  
 * Use is subject to license terms.
 * 
 */

// import java packages
//
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.border.*;
import javax.swing.event.*;
import java.util.*;
import javax.swing.event.*;
import javax.swing.table.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellEditor;

/**
 * This class is construct the main frame of the network builder.
 * @version 1.00
 */
public class UIMainFrame extends JFrame implements TreeSelectionListener,
						   ListSelectionListener,
						   CellEditorListener,
						   ChangeListener{

    //-----------------------------------------------------------------
    //
    // static data members
    //
    //-----------------------------------------------------------------

    //-----------------------------------------------------------------
    //
    // instance data members
    //
    //-----------------------------------------------------------------

    // the graph name list indicate which graph is current graph
    //
    public Vector level_graphs_d = new Vector();
    public LevelGraphTableModel graphs_in_level_d 
	= new LevelGraphTableModel();

    // a list of graph names
    //
    JTable jGraphList = new JTable(graphs_in_level_d);

    // status flag
    //
    boolean updating_d = false;

    // menu options
    //
    JMenuBar jMenuBarMain = new JMenuBar();

    JMenu jMenuFile = new JMenu();
    JMenuItem jMenuFileNew = new JMenuItem();
    JMenuItem jMenuFileOpen = new JMenuItem();
    JMenuItem jMenuFileSave = new JMenuItem();
    JMenuItem jMenuFileSaveAs = new JMenuItem();
    JMenuItem jMenuFileSaveAll = new JMenuItem();
    JMenuItem jMenuFileClose = new JMenuItem();
    JMenuItem jMenuFileExit = new JMenuItem();

    JMenu jMenuHelp = new JMenu();
    JMenuItem jMenuHelpAbout = new JMenuItem();
    //JMenuItem jMenuHelpTest = new JMenuItem();

    JMenu jMenuGrammar = new JMenu();
    JMenuItem jMenuGrammarInsertStart = new JMenuItem();
    JMenuItem jMenuGrammarInsertStop = new JMenuItem();
    JMenuItem jMenuGrammarInsertNode = new JMenuItem();
    JMenuItem jMenuGrammarInsertArc = new JMenuItem();
    JMenuItem jMenuGrammarInsertSelfArc = new JMenuItem();
    JMenuItem jMenuGrammarCopy = new JMenuItem();
    JMenuItem jMenuGrammarCut = new JMenuItem();
    JMenuItem jMenuGrammarPaste = new JMenuItem();
    JMenuItem jMenuGrammarDelete = new JMenuItem();

    JMenuItem jMenuGrammarCopyGraph = new JMenuItem();
    JMenuItem jMenuGrammarPasteGraph = new JMenuItem();
    JMenuItem jMenuGrammarWeightGraph = new JMenuItem();

    // menu for hiearchy
    //
    JMenu jMenuH = new JMenu();
    JMenuItem jMenuHAddLevel = new JMenuItem();
    JMenuItem jMenuHDeleteLevel = new JMenuItem();
    JMenuItem jMenuHCheckLevel = new JMenuItem();
    JMenuItem jMenuHAddGraph = new JMenuItem();
    JMenuItem jMenuHDeleteGraph = new JMenuItem();
    JMenuItem jMenuHSymbols = new JMenuItem();

    // panels
    //
    public JTabbedPane jTabbedPaneLeft = new JTabbedPane();

    JLabel statusBar = new JLabel();
    BorderLayout borderLayout1 = new BorderLayout();
    JPanel jPanel1 = new JPanel();
    BorderLayout borderLayout2 = new BorderLayout();
    JSplitPane jSplitPane1 = new JSplitPane();
    JSplitPane jSplitPane2 = new JSplitPane();
    JPanel jGraphPane = new JPanel();
    JPanel jPanel3 = new JPanel();
    JPanel jListPanel = new JPanel();
    JTree jLevelTree = null;

    BorderLayout borderLayout3 = new BorderLayout();
    BorderLayout borderLayout4 = new BorderLayout();
    JLabel jLabel1 = new JLabel();
    JLabel jLabel2 = new JLabel();
    JPanel jPanel5 = new JPanel();
    JPanel jTreePanel = new JPanel();
    BorderLayout borderLayout5 = new BorderLayout();
    BorderLayout borderLayout6 = new BorderLayout();
    TitledBorder titledBorder1;
    TitledBorder titledBorder2;
    Border border1;
    Border border2;

    JPanel jPanel7 = new JPanel();
    BorderLayout borderLayout7 = new BorderLayout();
    JLabel jLabel3 = new JLabel();
    JScrollPane jWorkPane = null;
    JScrollPane jLevelTreePane = null;
    JScrollPane jGraphListPane = new JScrollPane();

    JComboBox jComboBox1 = new JComboBox();
    FlowLayout flowLayout1 = new FlowLayout();
    JComboBox jComboBox2 = new JComboBox();
    JLabel jLabel4 = new JLabel();
    JComboBox jComboBox3 = new JComboBox();
    JLabel jLabel5 = new JLabel();

    //-----------------------------------------------------------------
    //
    // static function members
    //
    //-----------------------------------------------------------------

    //-----------------------------------------------------------------
    //
    // instance function members
    //
    //-----------------------------------------------------------------

    /**
     * the class constructor
     */
    public UIMainFrame() {
	enableEvents(AWTEvent.WINDOW_EVENT_MASK);
	try  {
	    jbInit();
	    checkMenu();
	    CData.loadOptions();
	}
	catch(Exception e) {
	    e.printStackTrace();
	}
    }

    /**
     * add a new level to the search levels 
     * 
     * @param new_leve_a the new level to be added
     * @return void
     */
    public void addLevel(SearchLevel new_level_a) {
	
	// create an new tab page for this level
	//
	jTabbedPaneLeft.addTab(new_level_a.level_name_d, 
			       new_level_a.jGraphPane);
	
    }

    /**
     * pre Component initialization
     * 
     * @param none
     * @return void
     */
    private void jbPreInit() throws Exception  {

	// init the level tree
	//
	DefaultMutableTreeNode root 
	    = new DefaultMutableTreeNode(CData.LEVEL_TREE_ROOT_NAME);

	jLevelTree = new JTree(root );
	jLevelTree.addTreeSelectionListener(this);

	// add the cell editor listener
	//
	jLevelTree.setCellEditor(new 
	    javax.swing.tree.
	    DefaultTreeCellEditor(jLevelTree, new DefaultTreeCellRenderer()));

	jLevelTree.getCellEditor().addCellEditorListener(this);

	// set the tree itself
	//
	jLevelTree.setEditable(true);
	jLevelTree.getSelectionModel().
	    setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
	jLevelTree.setShowsRootHandles(true);
	
	// set the panel for the tree of levels
	//
	jLevelTreePane 
	    = new JScrollPane(jLevelTree, 
			      JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
			      JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
	jLevelTreePane.setPreferredSize(new Dimension(600, 1000));

	// set the table of list of graph names
	//
	jGraphListPane.getViewport().add(jGraphList);

	// init the scrollPane, the workarea is in this pane
	//
	jWorkPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
				    JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
	jWorkPane.getViewport().add(CData.work_area_d);
	CData.work_area_d.revalidate();
	CData.work_area_d.setPreferredSize(new Dimension(6000, 10000));	
	CData.work_area_d.addMouseListener(CData.event_handler_d);
	CData.work_area_d.addMouseMotionListener(CData.event_handler_d);

	// init data
	//
	CData.curr_graph_d = new DiGraph();
	CData.work_area_d.setDiGraph(CData.curr_graph_d);
    }

    /**
     * initialize the menus
     * 
     * @param none
     * @return void
     */
    private void initMenu() throws Exception  {

	// menu bar, top level
	//
	jMenuBarMain.add(jMenuFile);
	jMenuBarMain.add(jMenuH);
	jMenuBarMain.add(jMenuGrammar);
	jMenuBarMain.add(Box.createHorizontalGlue());
	jMenuBarMain.add(jMenuHelp);
	this.setJMenuBar(jMenuBarMain);

	// menu File
	//
	jMenuFile.setText("File");

	jMenuFileNew.setText("New");
	jMenuFileOpen.setText("Open");
	jMenuFileSave.setText("Save");
	jMenuFileSaveAs.setText("Save As");
	jMenuFileSaveAll.setText("Save All");
	jMenuFileClose.setText("Close");
	jMenuFileExit.setText("Exit");

	jMenuFileNew.setActionCommand(CData.AM_FILE_NEW);
	jMenuFileOpen.setActionCommand(CData.AM_FILE_OPEN);
	jMenuFileSave.setActionCommand(CData.AM_FILE_SAVE);
	jMenuFileSaveAs.setActionCommand(CData.AM_FILE_SAVE_AS);
	jMenuFileSaveAll.setActionCommand(CData.AM_FILE_SAVE_ALL);
	jMenuFileClose.setActionCommand(CData.AM_FILE_CLOSE);
	jMenuFileExit.setActionCommand(CData.AM_FILE_EXIT);

	jMenuFile.add(jMenuFileNew);
	jMenuFile.add(jMenuFileOpen);
	jMenuFile.add(jMenuFileSave);
	jMenuFile.add(jMenuFileSaveAs);
	jMenuFile.add(jMenuFileSaveAll);

	jMenuFile.addSeparator();
	//jMenuFile.addSeparator();

	jMenuFile.add(jMenuFileClose);
	jMenuFile.add(jMenuFileExit);
	
	jMenuFileNew.addActionListener(CData.event_handler_d);
	jMenuFileOpen.addActionListener(CData.event_handler_d);
	jMenuFileSave.addActionListener(CData.event_handler_d);
	jMenuFileSaveAs.addActionListener(CData.event_handler_d);
	jMenuFileClose.addActionListener(CData.event_handler_d);
	jMenuFileSaveAll.addActionListener(CData.event_handler_d);
	jMenuFileExit.addActionListener(CData.event_handler_d);

	// menu Grammar
	//
	jMenuGrammar.setText("Graph");

	jMenuGrammarInsertStart.setText("Insert Start");
	jMenuGrammarInsertStop.setText("Insert Stop");
	jMenuGrammarInsertNode.setText("Insert Node");
	jMenuGrammarInsertArc.setText("Insert Arc");
	jMenuGrammarInsertSelfArc.setText("Insert Self Arc");
	jMenuGrammarCopy.setText("Copy");
	jMenuGrammarCut.setText("Cut");
	jMenuGrammarPaste.setText("Paste");
	jMenuGrammarDelete.setText("Delete");

	jMenuGrammarCopyGraph.setText("Copy Graph");
	jMenuGrammarPasteGraph.setText("Paste Graph");
	jMenuGrammarWeightGraph.setText("Set Equal Weights");

	jMenuGrammarInsertStart.setActionCommand(CData.AM_GRAMMAR_INSERT_START);
	jMenuGrammarInsertStop.setActionCommand(CData.AM_GRAMMAR_INSERT_STOP);
	jMenuGrammarInsertNode.setActionCommand(CData.AM_GRAMMAR_INSERT_NODE);
	jMenuGrammarInsertArc.setActionCommand(CData.AM_GRAMMAR_INSERT_ARC);
	jMenuGrammarInsertSelfArc.setActionCommand(CData.AM_GRAMMAR_INSERT_SELF_ARC);
	jMenuGrammarCopy.setActionCommand(CData.AM_GRAMMAR_COPY);
	jMenuGrammarCut.setActionCommand(CData.AM_GRAMMAR_CUT);
	jMenuGrammarPaste.setActionCommand(CData.AM_GRAMMAR_PASTE);
	jMenuGrammarDelete.setActionCommand(CData.AM_GRAMMAR_DELETE);

	jMenuGrammarCopyGraph.setActionCommand(CData.AM_GRAMMAR_COPY_GRAPH);
	jMenuGrammarPasteGraph.setActionCommand(CData.AM_GRAMMAR_PASTE_GRAPH);
	jMenuGrammarWeightGraph.setActionCommand(CData.AM_GRAMMAR_WEIGHT_GRAPH);

	jMenuGrammar.add(jMenuGrammarInsertStart);
	jMenuGrammar.add(jMenuGrammarInsertStop);
	jMenuGrammar.add(jMenuGrammarInsertNode);

	jMenuGrammar.addSeparator();
	jMenuGrammar.add(jMenuGrammarInsertArc);
	jMenuGrammar.add(jMenuGrammarInsertSelfArc);

	jMenuGrammar.addSeparator();
	jMenuGrammar.add(jMenuGrammarCopy);
	jMenuGrammar.add(jMenuGrammarCut);
	jMenuGrammar.add(jMenuGrammarPaste);
	jMenuGrammar.add(jMenuGrammarDelete);

	jMenuGrammar.addSeparator();
	jMenuGrammar.add(jMenuGrammarCopyGraph);
	jMenuGrammar.add(jMenuGrammarPasteGraph);
	jMenuGrammar.add(jMenuGrammarWeightGraph);

	jMenuGrammarInsertStart.addActionListener(CData.event_handler_d);
	jMenuGrammarInsertStop.addActionListener(CData.event_handler_d);
	jMenuGrammarInsertNode.addActionListener(CData.event_handler_d);
	jMenuGrammarInsertArc.addActionListener(CData.event_handler_d);
	jMenuGrammarInsertSelfArc.addActionListener(CData.event_handler_d);
	jMenuGrammarCopy.addActionListener(CData.event_handler_d);
	jMenuGrammarCut.addActionListener(CData.event_handler_d);
	jMenuGrammarPaste.addActionListener(CData.event_handler_d);
	jMenuGrammarDelete.addActionListener(CData.event_handler_d);

	jMenuGrammarCopyGraph.addActionListener(CData.event_handler_d);
	jMenuGrammarPasteGraph.addActionListener(CData.event_handler_d);
	jMenuGrammarWeightGraph.addActionListener(CData.event_handler_d);
	
	// set the accelerator
	//

	jMenuGrammarDelete.
	    setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
	jMenuGrammarCopy.
	    setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
						  ActionEvent.CTRL_MASK));
	jMenuGrammarCut.
	    setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
						  ActionEvent.CTRL_MASK));
	jMenuGrammarPaste.
	    setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
						  ActionEvent.CTRL_MASK));
	jMenuGrammarCopyGraph.
	    setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
						  ActionEvent.ALT_MASK));
	jMenuGrammarPasteGraph.
	    setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
						  ActionEvent.ALT_MASK));
	jMenuGrammarWeightGraph.
	    setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
						  ActionEvent.ALT_MASK));

	// menus for the Hiearchical Levels
	//
	jMenuH.setText("Hierarchy");

	jMenuHAddLevel.setText("Add Level");
	jMenuHDeleteLevel.setText("Delete Level");
	jMenuHCheckLevel.setText("Check Levels");
	jMenuHSymbols.setText("Symbols");


	jMenuHAddLevel.setActionCommand(CData.AM_H_ADD_LEVEL);
	jMenuHDeleteLevel.setActionCommand(CData.AM_H_DELETE_LEVEL);
	jMenuHCheckLevel.setActionCommand(CData.AM_H_CHECK_LEVEL);

	jMenuHAddGraph.setActionCommand(CData.AM_H_ADD_GRAPH);
	jMenuHDeleteGraph.setActionCommand(CData.AM_H_DELETE_GRAPH);

	jMenuHSymbols.setActionCommand(CData.AM_H_SYMBOLS);

	jMenuH.add(jMenuHAddLevel);
	jMenuH.add(jMenuHDeleteLevel);
	jMenuH.add(jMenuHCheckLevel);
	jMenuH.addSeparator();
	//jMenuH.add(jMenuHAddGraph);
	//jMenuH.add(jMenuHDeleteGraph);
	//jMenuH.addSeparator();
	jMenuH.add(jMenuHSymbols);

	jMenuHAddLevel.addActionListener(CData.event_handler_d);
	jMenuHDeleteLevel.addActionListener(CData.event_handler_d);
	jMenuHCheckLevel.addActionListener(CData.event_handler_d);

	jMenuHAddGraph.addActionListener(CData.event_handler_d);
	jMenuHDeleteGraph.addActionListener(CData.event_handler_d);

	jMenuHSymbols.addActionListener(CData.event_handler_d);
	
	// menu help
	//
	jMenuHelp.setText("Help");

	jMenuHelpAbout.setText("About");
	jMenuHelpAbout.setActionCommand(CData.AM_HELP_ABOUT);
	jMenuHelpAbout.addActionListener(CData.event_handler_d);
	jMenuHelp.add(jMenuHelpAbout);

    }

    /**
     * Component initialization
     * 
     * @return void
     */
    private void jbInit() throws Exception  {

	// special init forward
	//
	jbPreInit();
	CData.init();
      
	// init the menu
	//
	initMenu();

	titledBorder1 = new TitledBorder("");
	titledBorder2 = new TitledBorder("");
	border1 = BorderFactory.createEmptyBorder();
	border2 = BorderFactory.createEmptyBorder();
	this.getContentPane().setLayout(borderLayout1);
	this.setSize(new Dimension(800, 600));
	this.setTitle("Network Builder");
	statusBar.setText(" ");

⌨️ 快捷键说明

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