title: How to load a Java GUI class from a main class?
body: <p>I am new to java UI programming. </p>
  
  <p>how do i call a UI class from a main class in java </p>
  
  <pre><code>public static void main(String[] args) {
      // TODO code application logic here
      FileExtractorGUI gui = new FileExtractorGUI();
      gui.setVisible(true);
  }
  </code></pre>
  
  <p>Basically </p>
  
  <pre><code>FileExtractorGUI is a gui class. 
  </code></pre>
  
  <p>How do I load the GUI when I run the program. Currently nothing happens when I run the code. </p>
  
  <p>GUI CLass</p>
  
  <pre><code>package fileextractor;
  
  import javax.swing.JOptionPane;
  
  /*
   * To change this license header, choose License Headers in Project Properties.
   * To change this template file, choose Tools | Templates
   * and open the template in the editor.
   */
  /**
   *
   * @author 
   */
  public class FileExtractorGUI extends javax.swing.JPanel {
  
      /**
       * Creates new form FileExtractorGUI
       */
      public FileExtractorGUI() {
          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() {
  
          SourceField = new javax.swing.JTextField();
          jLabel1 = new javax.swing.JLabel();
          DestinationField = new javax.swing.JTextField();
          jLabel2 = new javax.swing.JLabel();
          Extract = new javax.swing.JButton();
  
          SourceField.setText("SourceField");
          SourceField.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  SourceFieldActionPerformed(evt);
              }
          });
  
          jLabel1.setText("SourceFolder");
  
          DestinationField.setText("DestinationField");
  
          jLabel2.setText("DestinationFolder");
  
          Extract.setText("Extract");
          Extract.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent evt) {
                  ExtractActionPerformed(evt);
              }
          });
  
          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
          this.setLayout(layout);
          layout.setHorizontalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addContainerGap()
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                      .addGroup(layout.createSequentialGroup()
                          .addComponent(jLabel1)
                          .addGap(38, 38, 38)
                          .addComponent(SourceField, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE))
                      .addGroup(layout.createSequentialGroup()
                          .addComponent(jLabel2)
                          .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 24, Short.MAX_VALUE)
                          .addComponent(DestinationField, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE)))
                  .addGap(74, 74, 74))
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(Extract)
                  .addContainerGap())
          );
          layout.setVerticalGroup(
              layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(layout.createSequentialGroup()
                  .addGap(26, 26, 26)
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(SourceField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(jLabel1))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                      .addComponent(DestinationField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                      .addComponent(jLabel2))
                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 194, Short.MAX_VALUE)
                  .addComponent(Extract)
                  .addContainerGap())
          );
      }// &lt;/editor-fold&gt;                        
  
      private void SourceFieldActionPerformed(java.awt.event.ActionEvent evt) {                                            
          // TODO add your handling code here:
      }                                           
  
      private void ExtractActionPerformed(java.awt.event.ActionEvent evt) {                                        
          // TODO add your handling code here:
          String src = SourceField.getText();
          String dest = DestinationField.getText();
          CopyDirectoryExample copy = new CopyDirectoryExample();
          copy.extract(src, dest);
          JOptionPane.showMessageDialog(null, "Extracted!");
      }                                       
  
  
      // Variables declaration - do not modify                     
      private javax.swing.JTextField DestinationField;
      private javax.swing.JButton Extract;
      private javax.swing.JTextField SourceField;
      private javax.swing.JLabel jLabel1;
      private javax.swing.JLabel jLabel2;
      // End of variables declaration                   
  }
  </code></pre>
  
  <p>As per request in comments, i have uploaded the GUI class code</p>