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

📄 snns.java

📁 著名的神经网络工具箱
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        if( cont instanceof JScrollPane ){
          JScrollPane sp = (JScrollPane)cont;
          JViewport vp = sp.getViewport();
          if( vp.getView() instanceof NetworkView ){
            NetworkView nv = (NetworkView)vp.getView();
            System.out.println("NetworkView["+nv.net_view_no+"]");
          }
          else System.out.println( sp.getViewport().getClass() );
        }
        else if( cont instanceof JTabbedPane )
          System.out.println("Control panel");
        else if( cont instanceof UnitDetailPanel ){
          UnitDetailPanel u = (UnitDetailPanel)cont;
          String text = "Unit details";
          if( u.frame.isVisible() ) text += " shown";
          else text += " hidden";
          System.out.println( text );
        }
        else if( cont instanceof GraphPanel )
          System.out.println("Error graph panel");
        else System.out.println( f.getContentPane().getClass() );
      }
      else System.out.println( c.getClass() );
    }*/

    // this object modifies the windows menu
    new WindowMenuItem(frame, mWindows);

    desktop.add( frame );
    if( visible ){
      frame.setVisible( true );
      frame.toFront();
      try {
        frame.setIcon(false);
        frame.setSelected(true);
      }
      catch (java.beans.PropertyVetoException e) {
        //System.out.println(frame.toString()+"coudn't get focused.");
        showException( e );
      }
    }
  }

  /**
   * Gives information about LookAndFeel the JavaNNS is using.
   *
   * @return <code>true</code> if using Swing (Metal) LookAndFeel
   */
  public static boolean isMetalLookAndFeel() { return METAL_LOOK_AND_FEEL; }

  private void showException( String message ){
    showException( new Exception( message ) );
  }
  private void showException( Exception e ){ showException( e, this ); }
  /**
   * method shows the message of an exception in a message dialog
   *
   * @param the exception
   */
  public void showException( Exception e, Object source ){
    JOptionPane.showMessageDialog( this,
                                   e.toString(),
                                   "Error message",
                                   JOptionPane.ERROR_MESSAGE );
    if( pLog != null )
      e.printStackTrace( new PrintStream( pLog.writer ) );
  }
  /**
   * method returns the last active network view or null
   */
  public NetworkView getLastSelectedView(){
    if( last_view != null && last_view.frame.isSelected() )
      return last_view;
    else if( net_views.size() > 0 )
      return (NetworkView)net_views.lastElement();
    return null;
  }

  /**
   * method returns the current NetworkViewSettings, that means either the
   * settings of the currently active NetworkView, of the last created NetworkView
   * or default settings
   *
   * @return the NetworkViewSettings
   */
  public NetworkViewSettings getCurrentSettings(){
    NetworkView view = getLastSelectedView();
    if( view != null ) return view.settings;
    return NetworkViewSettings.getDefaultSettings();
  }

  /**
   * method asks the user whether an <code>LoaderAndSaver</code> object should
   * be saved or not
   *
   * @param las the <code>LoaderAndSaver</code> object to save
   * @return <code>false</code> if something went wrong or if the
   *         CANCEL_OPTION has been selected
   */
  public boolean askForSaving( LoaderAndSaver las ){
    boolean ok = true;
    String text = "Save changes to "+ las.getLASName() + "?";
    int choice = JOptionPane.showOptionDialog( this, text, "FileManager",
                                               JOptionPane.YES_NO_CANCEL_OPTION,
                                               JOptionPane.QUESTION_MESSAGE,
                                               null, null, null );
    if( choice == JOptionPane.YES_OPTION ){
      try{
        if( las.hasHomeFile() ) las.save();
        else ok = fileManager.showSaveDialog( las );
      }
      catch( Exception e ){
        showException( e );
        ok = false;
      }
    }
    else if( choice == JOptionPane.CANCEL_OPTION ) ok = false;
    return ok;
  }

/*------------------------------ private methods -----------------------------*/


  /**
   * Opens a frame for viewing the network with default settings
   */
  private UIDisplayType getDefaultDisplayType() {
    UIDisplayType dt = new UIDisplayType();
    dt.position = new Point(0, 0);
    dt.displayNo = net_views_count + 1;
    dt.dimension = new Dimension(400, 300);
    dt.settings = null;
    return dt;
  }

  private void openNetworkView(){
    openNetworkView( getDefaultDisplayType() );
  }

  /**
   * Opens a frame for viewing the network.
   *
   * @param display type
   */
  private void openNetworkView( UIDisplayType dt ) {
    //System.out.println("Snns.openNetworkView");
    NetworkView nv = new NetworkView( this,  dt );
    nv.addListener( this );
    net_views.addElement( nv );
    net_views_count++;
    addInternalFrame( nv.frame, true );
  }

  /**
   * method removes all network views and sets the network view counter to zero
   */
  private void deleteNetworkViews(){
    NetworkView view;
    for( int i=net_views.size()-1; i>-1; i-- ){
      view = (NetworkView)net_views.elementAt( i );
      view.frame.dispose();
    }
    net_views_count = 0;
  }

  private void close(){
    Vector las = new Vector();

    if( network.contentChanged() ) las.add(network);

    if( pLog.contentChanged() ) las.add(pLog);

    Vector sets = patternSets.sets;
    for( int i=0; i<sets.size(); i++ ){
      PatternSet set = (PatternSet)sets.get(i);
      if( set.contentChanged() ) las.add(set);
    }

    if( properties.contentChanged() ) las.add(properties);

    if( las.size() > 0 ){
      LoaderAndSaver[] lasar = new LoaderAndSaver[ las.size() ];
      las.toArray(lasar);
      if( !(new LASSaveDialog()).show( this, (LoaderAndSaver[])lasar ) ) return;
    }
    if(applet == null) System.exit(0);
    else dispose();
  }

  /**
   * Creates menu bar in the application main frame.
   */
  private void setMenuBar() {
    JMenuBar menuBar = new JMenuBar();
    setJMenuBar(menuBar);

    // File menu
    JMenu menu;
    menu = new JMenu("File");
    menu.setMnemonic(KeyEvent.VK_F);
    menu.getAccessibleContext().setAccessibleDescription("File menu");
    menuBar.add(menu);

    mNew = new JMenuItem("New...", KeyEvent.VK_N);
    mNew.setIcon(icons.getIcon("New16.gif"));
    mNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK));
    mNew.getAccessibleContext().setAccessibleDescription("Create new network");
    mNew.addActionListener(this);
    menu.add(mNew);

    mOpen = new JMenuItem("Open...", KeyEvent.VK_O);
    mOpen.setIcon(icons.getIcon("Open16.gif"));
    mOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK));
    mOpen.getAccessibleContext().setAccessibleDescription("Open file...");
    mOpen.addActionListener(this);
    menu.add(mOpen);

    menu.addSeparator();

    mClose = new JMenuItem("Close", KeyEvent.VK_C);
    mClose.setIcon(icons.getIcon("empty16.gif"));
    mClose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, ActionEvent.CTRL_MASK));
    mClose.getAccessibleContext().setAccessibleDescription("Close");
    mClose.addActionListener(this);
    menu.add(mClose);

    mSave = new JMenuItem("Save", KeyEvent.VK_S);
    mSave.setIcon(icons.getIcon("Save16.gif"));
    mSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
    mSave.getAccessibleContext().setAccessibleDescription("Save network");
    mSave.addActionListener(this);
    menu.add(mSave);

    mSaveAs = new JMenuItem("Save as...", KeyEvent.VK_A);
    mSaveAs.setIcon(icons.getIcon("SaveAs16.gif"));
    mSaveAs.addActionListener(this);
    menu.add(mSaveAs);

    mSaveData = new JMenuItem("Save data...", KeyEvent.VK_D);
    mSaveData.setIcon(icons.getIcon("empty16.gif"));
    mSaveData.addActionListener(this);
    menu.add(mSaveData);

    menu.addSeparator();

    mPrint = new JMenuItem("Print...", KeyEvent.VK_P);
    mPrint.setIcon(icons.getIcon("Print16.gif"));
    mPrint.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK));
    mPrint.getAccessibleContext().setAccessibleDescription("Print");
    mPrint.addActionListener(this);
    menu.add(mPrint);

    menu.addSeparator();

    mExit = new JMenuItem("Exit", KeyEvent.VK_X);
    mExit.setIcon(icons.getIcon("empty16.gif"));
    mExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK));
    mExit.getAccessibleContext().setAccessibleDescription("Exit");
    mExit.addActionListener(this);
    menu.add(mExit);

    // Edit menu
    JMenu mEdit = new JMenu("Edit");
    mEdit.setMnemonic( KeyEvent.VK_E );
    menuBar.add( mEdit );

    mUndo = new JMenuItem("Undo", KeyEvent.VK_U);
    mUndo.setIcon(icons.getIcon("Undo16.gif"));
    mUndo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK));
    mUndo.getAccessibleContext().setAccessibleDescription("Undo");
    mUndo.setEnabled(false);
    mEdit.add(mUndo);
    mUndo.addActionListener(this);

    mRedo = new JMenuItem("Redo", KeyEvent.VK_R);
    mRedo.setIcon(icons.getIcon("Redo16.gif"));
    mRedo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y, ActionEvent.CTRL_MASK));
    mRedo.getAccessibleContext().setAccessibleDescription("Redo");
    mRedo.setEnabled(false);
    mEdit.add(mRedo);
    mRedo.addActionListener(this);

    NetworkUndoRedo nur = new NetworkUndoRedo( this, 10 );
    nur.addMenus(mUndo, mRedo);

    mEdit.addSeparator();

    mTop = new JMenuItem("Top Labels");
    mTop.setIcon(icons.getIcon("empty16.gif"));
    mTop.setEnabled( false );
    mEdit.add( mTop );
    mTop.addActionListener( this );

    mBottom = new JMenuItem("Bottom Labels");
    mBottom.setIcon(icons.getIcon("empty16.gif"));
    mBottom.setEnabled( false );
    mEdit.add( mBottom );
    mBottom.addActionListener( this );

    mEdit.addSeparator();

    mEditUnits = new JMenuItem("Units Properties...");
    mEditUnits.setIcon(icons.getIcon("unitProperties.gif"));
    mEditUnits.setEnabled( false );
    mEditUnits.addActionListener( this );
    mEdit.add( mEditUnits );

    // Submenu "Delete":
    mDelete = new JMenu("Delete");
    mDelete.setMnemonic(KeyEvent.VK_D);
    mDelete.setIcon(icons.getIcon("Delete16.gif"));
    mDelete.setEnabled( false );
    mEdit.add( mDelete );

      mDeleteUnits = new JMenuItem("Units");
      mDeleteUnits.addActionListener( this );
      mDelete.add( mDeleteUnits );

      mDeleteLinks = new JMenuItem("Links");
      mDeleteLinks.addActionListener( this );
      mDelete.add( mDeleteLinks );

    // View menu
    menu = new JMenu("View");
    menu.setMnemonic(KeyEvent.VK_V);
    menu.getAccessibleContext().setAccessibleDescription("View menu");
    menuBar.add(menu);

    mNetwork = new JMenuItem("Network", KeyEvent.VK_N);
    mNetwork.setIcon(icons.getIcon("network.gif"));
    mNetwork.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK));
    mNetwork.getAccessibleContext().setAccessibleDescription("Network window");
    mNetwork.addActionListener(this);
    menu.add(mNetwork);

    mViewSettings = new JMenuItem("Display Settings", KeyEvent.VK_D);
    mViewSettings.setIcon(icons.getIcon("viewSettings.gif"));
    mViewSettings.setEnabled( false );
    mViewSettings.addActionListener( this );
    menu.add( mViewSettings );

    /*m3DNetwork = new JMenuItem("3D-Network", KeyEvent.VK_3);
    m3DNetwork.setIcon(new ImageIcon( cl.getResource("images/empty16.gif") ));
    m3DNetwork.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.CTRL_MASK));
    m3DNetwork.getAccessibleContext().setAccessibleDescription("3D Network window");
    m3DNetwork.addActionListener(this);
    menu.add(m3DNetwork);
    m3DNetwork.setEnabled(false);*/

    menu.addSeparator();

    mGraph = new JMenuItem("Error Graph", KeyEvent.VK_E);
    mGraph.setIcon(icons.getIcon("errorGraph.gif"));
    mGraph.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
    mGraph.getAccessibleContext().setAccessibleDescription("Error graph window");
    mGraph.addActionListener(this);
    menu.add(mGraph);

    mWeights = new JMenuItem("Weights", KeyEvent.VK_W);
    mWeights.setIcon(icons.getIcon("weight.gif"));
    mWeights.getAccessibleContext().setAccessibleDescription("Weights");
    mWeights.addActionListener(this);
    menu.add(mWeights);

    mProjection = new JMenuItem("Projection", KeyEvent.VK_P);
    mProjection.setIcon(icons.getIcon("projection.gif"));
    mProjection.getAccessibleContext().setAccessibleDescription("Projection");
    mProjection.addActionListener( this );
    mProjection.setEnabled( false );
    menu.add( mProjection );

    mKohonen = new JMenuItem("Kohonen", KeyEvent.VK_K);
    mKohonen .setIcon(icons.getIcon("empty16.gif"));
    mKohonen.getAccessibleContext().setAccessibleDescription("Kohonen");
    mKohonen.addActionListener(this);
    menu.add(mKohonen);

⌨️ 快捷键说明

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