title: Opening a GUI from another GUI - Java Swing
body: <p>I am using Netbeans 7.3 Beta 2 GUI builder. Coding a Swing GUI and I am trying to show another GUI once a button has been pressed.</p>
  
  <pre><code>private void loginButtonSceneActionPerformed(java.awt.event.ActionEvent evt) {
      new LoginGUI();
  }
  </code></pre>
  
  <p>Once login button is pressed I want to show the LoginGUI but it does nothing and Netbeans states "New instance ignored". I've added a system.out.println on the button to make sure it works fine and it does. </p>
  
  <p>Here is more or less the full source. Where am I going wrong? I want to replace this GUI with the login GUI.</p>
  
  <pre><code>package com.john.spp.view;
  import java.sql.ResultSet;
  import java.sql.Statement;
  
  /**
   *
   * @author John
   */
  public class LogRegGUI extends javax.swing.JFrame {
  
  /**
   * Creates new form LoginGUI
   */
  public LogRegGUI() {
      initComponents();
  }
  
  /**
   * This method is called from within the constructor to initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is always
   * regenerated by the Form Editor.
   */
  @SuppressWarnings("unchecked")
  // &lt;editor-fold defaultstate="collapsed" desc="Generated Code"&gt;
  private void initComponents() {
     //GUI BUILDER CODE HERE
  }// &lt;/editor-fold&gt;
  
  private void loginButtonSceneActionPerformed(java.awt.event.ActionEvent evt) {
      new LoginGUI();
  }
  
  private void registerSceneButtonActionPerformed(java.awt.event.ActionEvent evt) {
      // TODO add your handling code here:
  }
  
  /**
   * @param args the command line arguments
   */
  public static void main(String args[]) {
      /* Set the Nimbus look and feel */
      //&lt;editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "&gt;
      /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
       * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
       */
      try {
          for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
              if ("Nimbus".equals(info.getName())) {
                  javax.swing.UIManager.setLookAndFeel(info.getClassName());
                  break;
              }
          }
      } catch (ClassNotFoundException ex) {
          java.util.logging.Logger.getLogger(LogRegGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (InstantiationException ex) {
          java.util.logging.Logger.getLogger(LogRegGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (IllegalAccessException ex) {
          java.util.logging.Logger.getLogger(LogRegGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (javax.swing.UnsupportedLookAndFeelException ex) {
          java.util.logging.Logger.getLogger(LogRegGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      }
      //&lt;/editor-fold&gt;
  
      /* Create and display the form */
      java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
              new LogRegGUI().setVisible(true);
          }
      });
  }
  // Variables declaration - do not modify
  private javax.swing.JButton dataVaultButton;
  private javax.swing.JButton helpButton;
  private javax.swing.JEditorPane jEditorPane1;
  private javax.swing.JLabel jLabel3;
  private javax.swing.JPanel jPanel1;
  private javax.swing.JPanel jPanel2;
  private javax.swing.JScrollPane jScrollPane1;
  private javax.swing.JButton loginButton;
  private javax.swing.JButton logoutButton;
  private javax.swing.JButton registerButton;
  private javax.swing.JButton settingsButton;
  // End of variables declaration
  }
  </code></pre>
  
  <p>Thanks.</p>
  
  <p>EDIT:</p>
  
  <p>Fixed it by using this code, but it looks quite bad as it flashes quite quickly and re-draws the new GUI, any ideas on how to stop this?</p>
  
  <pre><code>private void loginButtonSceneActionPerformed(java.awt.event.ActionEvent evt) { 
      LoginGUI itemloader=new LoginGUI();
      itemloader.setVisible(true);
      this.setVisible(false);
  } 
  </code></pre>