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

📄 uimainframe.java

📁 这是一个从音频信号里提取特征参量的程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

	jPanel1.setLayout(borderLayout2);
	jSplitPane1.setLastDividerLocation(200);
	jSplitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);
	jSplitPane2.setLeftComponent(null);
	jSplitPane2.setTopComponent(jPanel3);
	jPanel3.setLayout(borderLayout3);
	jListPanel.setLayout(borderLayout4);
	jLabel1.setBorder(BorderFactory.createEtchedBorder());
	jLabel1.setText("Hierarchy");
	jLabel2.setBorder(BorderFactory.createEtchedBorder());
	jLabel2.setText("Graph List");
	jPanel5.setLayout(borderLayout5);
	jTreePanel.setLayout(borderLayout6);

	jPanel3.setBorder(BorderFactory.createLineBorder(Color.black));
	jListPanel.setBorder(BorderFactory.createLineBorder(Color.black));

	jGraphPane.setLayout(borderLayout7);
	jLabel3.setPreferredSize(new Dimension(80, 24));
	jLabel3.setText("Model Name");
	jPanel7.setLayout(flowLayout1);
	jComboBox1.setMaximumSize(new Dimension(80, 24));
	jComboBox1.setMinimumSize(new Dimension(80, 24));
	jComboBox1.setPreferredSize(new Dimension(100, 24));
	jComboBox2.setPreferredSize(new Dimension(100, 24));
	jComboBox2.setMinimumSize(new Dimension(80, 24));
	jComboBox2.setMaximumSize(new Dimension(80, 24));
	jLabel4.setText("Level");
	jLabel4.setPreferredSize(new Dimension(60, 24));
	jComboBox3.setPreferredSize(new Dimension(100, 24));
	jComboBox3.setMinimumSize(new Dimension(80, 24));
	jComboBox3.setMaximumSize(new Dimension(80, 24));
	jLabel5.setText("Model Type");
	jLabel5.setPreferredSize(new Dimension(80, 24));
	jWorkPane.setBackground(Color.white);
	jWorkPane.setBorder(BorderFactory.createEtchedBorder());
	jPanel7.setBorder(BorderFactory.createEtchedBorder());

	this.getContentPane().add(statusBar, BorderLayout.EAST);
	this.getContentPane().add(jPanel1, BorderLayout.CENTER);

	jPanel1.add(jSplitPane1, BorderLayout.CENTER);
	jSplitPane1.add(jSplitPane2, JSplitPane.TOP);
	jSplitPane2.add(jPanel3, JSplitPane.TOP);
	jPanel3.add(jPanel5, BorderLayout.NORTH);
	jPanel5.add(jLabel1, BorderLayout.CENTER);
	jPanel3.add(jTreePanel, BorderLayout.CENTER);
	jTreePanel.add(jLevelTreePane, BorderLayout.CENTER);
	jSplitPane2.add(jListPanel, JSplitPane.BOTTOM);
	jListPanel.add(jGraphListPane, BorderLayout.CENTER);
	jListPanel.add(jLabel2, BorderLayout.NORTH);

	jSplitPane1.add(jTabbedPaneLeft, JSplitPane.BOTTOM);
	
	// create an empty graph
	//
	jTabbedPaneLeft.addChangeListener(this);
	//jTabbedPaneLeft.addTab("Graph", jGraphPane);

	//jTabbedPaneLeft.addTab("Symbol", jSymbolPane);

	jPanel7.add(jLabel4, null);
	jPanel7.add(jComboBox2, null);
	jPanel7.add(jLabel3, null);
	jPanel7.add(jComboBox1, null);
	jPanel7.add(jLabel5, null);
	jPanel7.add(jComboBox3, null);
	jGraphPane.add(jWorkPane, BorderLayout.CENTER);

	jSplitPane1.setDividerLocation(200);
	jSplitPane2.setDividerLocation(250);

	// set the action listener
	//
	ListSelectionModel model = jGraphList.getSelectionModel();
	model.addListSelectionListener(this);
	updateAll();
    }

    /**
     * this function update all interface when level/graph is changed
     * 
     * @param e a window event
     * @return void
     */
    protected void processWindowEvent(WindowEvent e) {
	super.processWindowEvent(e);
	if(e.getID() == WindowEvent.WINDOW_CLOSING) {
	    CData.event_handler_d.fileExit_actionPerformed(null);
	}
    }

    /**
     * this function update all interface when level/graph is changed
     * 
     * @return void
     */
    public void updateAll() {

	updating_d = true;

	SearchLevel curr_level = 	    
	    (SearchLevel)CData.getCurrLevel();

	if ( curr_level != null ){
	    curr_level.sortSymbols();
	}

	// set the tree for levels
	//
	DefaultTreeModel model = (DefaultTreeModel)jLevelTree.getModel();
	DefaultMutableTreeNode  root = 
	    (DefaultMutableTreeNode)jLevelTree.getModel().getRoot();

	// remove all children
	//
	root.removeAllChildren();

	for (int i = 0 ; i < CData.search_levels_d.size(); i++){
	    curr_level = (SearchLevel)CData.search_levels_d.get(i);
	    root.add(new DefaultMutableTreeNode(curr_level.level_name_d));

	}
	model.reload();

	// set the tree selection
	//
	if ( CData.curr_level_index_d >= 0 ){
	    // set the tree selection
	    //
	    TreePath curr_path = 
		new TreePath(((DefaultMutableTreeNode)
			      root.getChildAt(CData.curr_level_index_d)).getPath());
	    
	    jLevelTree.setSelectionPath(curr_path);

	}

	// set to current level
	//
	curr_level = (SearchLevel)CData.getCurrLevel();

	int level_index =  CData.curr_level_index_d;
	
	// set the symbol list ( graph name list )
	//
	if ( CData.curr_level_index_d > 0 ){
	    if ( CData.getLevel(level_index - 1).contexts_d.size() > 0 ){
		curr_level.graph_names_d = 
		    CData.getLevel(level_index - 1).contexts_d;
	    }
	    else {
		curr_level.graph_names_d = 
		    CData.getLevel(level_index - 1).symbols_d;
	    }
	}
	
	// set graph names , these names will be displayed in
	// the graph list
	//
	if ( curr_level != null ){
	    level_graphs_d = curr_level.graph_names_d;
	}

	graphs_in_level_d.fireTableDataChanged();

	// clear all levels
	//
	//jTabbedPaneLeft.removeAll();

	// set the labels
	//
	for ( int i = 0 ; i < CData.search_levels_d.size(); i ++ ){
	    SearchLevel level = (SearchLevel)CData.search_levels_d.get(i);
	    jTabbedPaneLeft.setTitleAt(i, level.level_name_d);	    
	}
	
	// set the graph in the work area
	//
	if ( curr_level != null){

	    // find the panel first
	    //
	    int i = jTabbedPaneLeft.
		indexOfComponent(curr_level.jGraphPane);

	    // set current work pane
	    //
	    jTabbedPaneLeft.setSelectedIndex(i);
	    //jWorkPane = curr_level.jWorkPane;

	    // set the graph and workarea
	    //
	    if (curr_level.graph_names_d.size() > CData.curr_graph_index_d ){
		
		/*
		System.out.println("current level index:" 
				   + CData.curr_level_index_d);
		System.out.println("current graph index:" 
				   + CData.curr_graph_index_d);
		*/

		String graph_name = (String) 
		    curr_level.graph_names_d.get(CData.curr_graph_index_d);

		//System.out.println("curr graph name: " + graph_name);

		// set current graph
		//
		CData.curr_graph_d = 
		    (DiGraph)curr_level.graphs_d.get(graph_name);
		
		if ( CData.curr_graph_d == null ){
		    CData.curr_graph_d = new DiGraph();
		    curr_level.graphs_d.put(graph_name, CData.curr_graph_d);
		}
		
		// set current work area
		//
		//jWorkPane.getViewport().removeAll();

		// set the graph, the work area
		//
		CData.work_area_d.setDiGraph(CData.curr_graph_d);
		//jWorkPane.getViewport().add(CData.work_area_d);

		// insert all vertices into the work area
		//
		CData.work_area_d.insertAll();
		CData.work_area_d.revalidate();

		// set the selection
		//
		jGraphList.changeSelection(CData.curr_graph_index_d, 0,
				       false,false);
		curr_level.setWorkArea(CData.work_area_d);
	    }
	}
	else {
	    CData.curr_graph_d = null;
	    CData.work_area_d.setDiGraph(null);
	}

	// set the global symbol table
	//
	if (CData.symbol_dlg_d != null){
	    CData.event_handler_d.showSymbolsDlg();
	}
	CData.event_handler_d.resetFocus();

	//jWorkPane.setPreferredSize(new Dimension(1, 1));	
	//jWorkPane.setViewportView(CData.work_area_d);
	//CData.work_area_d.setPreferredSize(new Dimension(6, 10));	
	//CData.work_area_d.revalidate();
	//jWorkPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
	//jWorkPane.revalidate();
	//jWorkPane.repaint();
	//CData.work_area_d.setPreferredSize(new Dimension(600, 1000));	
	//CData.work_area_d.revalidate();
	//CData.work_area_d.repaint();
	//jTabbedPaneLeft.repaint();

	updating_d = false;
    }
    
    /**
     * handle the event the tabbed pane changed
     * 
     * @param e the mouse event
     * @return void
     */
    public void editingStopped(ChangeEvent e) {

	System.out.println("editingStopped");

	if ( updating_d ){
	    return;
	}
	
	// set the tree for levels
	//
	DefaultTreeModel model = (DefaultTreeModel)jLevelTree.getModel();
	DefaultMutableTreeNode  root = 
	    (DefaultMutableTreeNode)jLevelTree.getModel().getRoot();

	DefaultMutableTreeNode  selectedNode = 
	    (DefaultMutableTreeNode)jLevelTree.getLastSelectedPathComponent();
	if ( selectedNode == root || selectedNode == null ){
	    return;
	}

	// set previous value to search level
	//
	for ( int i = 0; i < root.getChildCount(); i++ ){
	    DefaultMutableTreeNode curr_node = 
		(DefaultMutableTreeNode)root.getChildAt(i);
	    String level_name = (String)curr_node.getUserObject();
	    CData.getLevel(i).level_name_d = level_name;
	}

	// update all
	//
	updateAll();
    }
    
    /**
     * handle the event the tabbed pane changed
     * 
     * @param e the mouse event
     * @return void
     */
    public void editingCanceled(ChangeEvent e) {
	
	return;
    }
    
    /**
     * handle the event the tabbed pane changed
     * 
     * @param e the mouse event
     * @return void
     */
    public void stateChanged(ChangeEvent e) {
	
	if ( updating_d ){
	    return;
	}
	
	// set correct level and graph
	//
	CData.curr_graph_index_d = 0;
	//CData.curr_level_index_d = 0;
	CData.curr_level_index_d = jTabbedPaneLeft.getSelectedIndex();
	updateAll();
    }
    
    /**
     * handle the event when a command is issued
     * 
     * @param e the mouse event
     * @return void
     */
    public void valueChanged(ListSelectionEvent e) {
	
	if ( updating_d ){
	    return;
	}
	
	// if  the user click on the symbol list
	//
	int i = jGraphList.getSelectedRow();
	int j = jGraphList.getSelectedColumn();
	
	if ( i >= 0 && j >= 0 ){
	    String selected_string = (String)jGraphList.getValueAt(i,j);
	    
	    CData.curr_graph_index_d = 
		CData.getCurrLevel().graph_names_d.indexOf(selected_string);
	    updateAll();
	}
    }
    
    /**
     * check menu 
     * 
     * @return void
     */
    public void checkMenu() {

	// check the menu options
	//
	jMenuGrammarInsertStart.setEnabled(true);		    
	jMenuGrammarInsertStop.setEnabled(true);		    
	jMenuHSymbols.setEnabled(true);
	jMenuGrammar.setEnabled(true);

	if ( CData.curr_graph_d == null ){
	    jMenuGrammar.setEnabled(false);
	}
	else {
	    if ( CData.curr_graph_d.hasStart() ){
		jMenuGrammarInsertStart.setEnabled(false);		    
	    }
	    if ( CData.curr_graph_d.hasTerm() ){
		jMenuGrammarInsertStop.setEnabled(false);		    
	    }
	}
	
	if ( CData.search_levels_d == null ){
	    jMenuHSymbols.setEnabled(false);
	}
	else if ( CData.search_levels_d.size() == 0 ){
	    jMenuHSymbols.setEnabled(false);
	}
    }

    /**
     * handle the event when a command is issued
     * 
     * @param e the mouse event
     * @return void
     */
    public void valueChanged(TreeSelectionEvent e) {
	
	if ( updating_d ){
	    return;
	}

	DefaultMutableTreeNode  root = 
	    (DefaultMutableTreeNode)jLevelTree.getModel().getRoot();
	DefaultMutableTreeNode  selectedNode = 
	    (DefaultMutableTreeNode)jLevelTree.getLastSelectedPathComponent();
	if ( selectedNode != root && selectedNode != null ){
	    CData.curr_level_index_d = 
		((DefaultMutableTreeNode)selectedNode.getParent()).
		getIndex(selectedNode);
	    CData.curr_graph_index_d = 0;
	    updateAll();
	}
    }

    // define inner class NodeSymbolModel
    //
    class LevelGraphTableModel extends AbstractTableModel {
        final String[] columnNames = {"Graph Name"};

        public int getColumnCount() {
            return columnNames.length;
        }

        public int getRowCount() {
	    return level_graphs_d.size(); 
        }

        public String getColumnName(int col) {
            return columnNames[col];
        }

        public Object getValueAt(int row, int col) {
	    return level_graphs_d.get(row);
        }

        public void setValueAt(Object aValue, int row, int col) {
	    level_graphs_d.set(row, aValue.toString());
        }

        public Class getColumnClass(int c) {
            return getValueAt(0, c).getClass();
        }

        public boolean isCellEditable(int row, int col) {
	    return false;
        }
    } // end of class LevelSymbolModel

}



⌨️ 快捷键说明

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