title: Exception in thread “main” java.lang.StackOverflowError
body: <p><strong>Errors</strong> When i Compile the file I get no errors but when I try to execute this I get the following messages:</p>
  
  <pre><code>Exception in thread "main" java.lang.StackOverflowError
  at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:1988)
  at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:1997)
  at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:1997)
  at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:1997)
  at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:1997)
  at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:1997)
  at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:1982)
  at javax.swing.LookAndFeel.installProperty(LookAndFeel.java:275)
  at javax.swing.plaf.basic.BasicButtonUI.installDefaults(BasicButtonUI.java:102)
  at javax.swing.plaf.metal.MetalButtonUI.installDefaults(MetalButtonUI.java:80)
  at javax.swing.plaf.basic.BasicButtonUI.installUI(BasicButtonUI.java:88)
  at javax.swing.JComponent.setUI(JComponent.java:664)
  at javax.swing.AbstractButton.setUI(AbstractButton.java:1807)
  at javax.swing.JButton.updateUI(JButton.java:146)
  at javax.swing.AbstractButton.init(AbstractButton.java:2172)
  at javax.swing.JButton.&lt;init&gt;(JButton.java:136)
  at javax.swing.JButton.&lt;init&gt;(JButton.java:109)
  at Paneel$boven.&lt;init&gt;(Loterij3.java:65)
  at Paneel$kies.&lt;init&gt;(Loterij3.java:125)
  at Paneel$boven.&lt;init&gt;(Loterij3.java:66)
  at Paneel$kies.&lt;init&gt;(Loterij3.java:125)
  </code></pre>
  
  <p>And then the last lines just repeats themselves many times.</p>
  
  <p><strong>Question:</strong> What do I have to change in my code to make it work?</p>
  
  <p><strong>Note:</strong> I'm new to Java and I know there are more posts like this one but I just can't apply them to my code with my current limited understanding of Java.</p>
  
  <p>If someone wants to know: I'm using JCreator.</p>
  
  <p><strong>What i'm trying to make:</strong> What I'm trying to make is fairly simple. </p>
  
  <p><strong>1)</strong> Fill in a name in the JTextField, press enter and the name should appear in the JTextArea. After the name is in the JTextArea the JTextField becomes empty so you can fill another name and so on there should appear a list of names in JTextArea. (this is what I'm now trying to make)</p>
  
  <p><strong>2)</strong> Push the button kiesWin to make the program choose a random person from the list.</p>
  
  <p><strong>3)</strong> Push the button resetL to reset the program so I can make a new list to choose a random winner from it.</p>
  
  <p><strong>The whole code:</strong></p>
  
  <pre><code>import javax.swing.*;
  import javax.swing.border.*;
  import java.awt.*;
  import java.awt.event.*;
  import java.util.*;
  
  // Main method to make the frame
  public class Loterij3 extends JFrame {
  public static void main( String args[] ) {
      JFrame frame = new Loterij3();
      frame.setExtendedState( frame.MAXIMIZED_BOTH );
      frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      frame.setTitle( "Klanten Register" );
      frame.setContentPane( new Paneel() );
      frame.setVisible( true );
  }
  }
  
  class Paneel extends JPanel {
  private boven Boven;
  JTextArea textvak1;
  JTextField textvak2;
  OnthoudNaam onthoudNaam = new OnthoudNaam();
  
  public Paneel() {
  setLayout( new BorderLayout() ); // using border Layout.
  setBackground( Color.LIGHT_GRAY );
  
  textvak1 = new JTextArea();
  add( new JScrollPane( textvak1 ) );
  textvak1.setBackground( Color.WHITE );
  
  textvak2 = new JTextField();
  textvak2.setHorizontalAlignment(JTextField.CENTER);
  textvak2.setEditable( false );
  
  Boven = new boven();    
  
  add( Boven, BorderLayout.NORTH );
  add( textvak1, BorderLayout.CENTER );
  add( textvak2, BorderLayout.SOUTH );
  }
  
  class boven extends JPanel {
  JButton kiesWin, resetL;
  JLabel label1;
  JTextField invoervak1;
  
  public boven() {
      setBackground( Color.LIGHT_GRAY );
      setLayout( new GridLayout( 1, 4, 100, 5 ) ); // using GridLayout.
      Border border = 
          BorderFactory.createEmptyBorder( 10, 10, 10, 10 );
      setBorder( border );
  
      kiesWin = new JButton("Kies een Winnaar!");
      kiesWin.addActionListener( new kies() );
      resetL = new JButton("Reset alles");
      resetL.addActionListener( new reset() );
      label1 = new JLabel("Voer Persoon in en druk op enter: ", JLabel.RIGHT);
      invoervak1 = new JTextField( 20 );
      invoervak1.addActionListener( new InvoerVakHandler() );
  
      add( label1 );
      add( invoervak1 );
      add( kiesWin );
      add( resetL );
      }
  }
  
  // de naam
  class naam {
      private String ingevoerdNaam;
  
      public naam( String ingevoerdNaam) {
          this.ingevoerdNaam = ingevoerdNaam;
      }
  
      public String getIngevoerdNaam() {
          return ingevoerdNaam;
      }
  }
  
  // Arraylist
  class OnthoudNaam extends JPanel {
      private ArrayList&lt;naam&gt; lijst;
  
      public OnthoudNaam() {
          lijst = new ArrayList&lt;naam&gt;();
          }
  
          public void voegNaamToe(naam x ) {
          lijst.add(x);
          }
  
          public String toString() {
          StringBuffer buffer = new StringBuffer();
          for(naam x : lijst ) {
          buffer.append( x );
          buffer.append( "\n" );
      }
      return buffer.toString();
  }
  }
  
  // invoer handler
  public class InvoerVakHandler extends boven implements ActionListener {
      public void actionPerformed( ActionEvent e ) {
          String invoer = invoervak1.getText();
          naam naam = new naam( invoer );
          onthoudNaam.voegNaamToe( naam );
          textvak1.setText( onthoudNaam.toString() );
      }
  }
      // kies
  class kies extends boven implements ActionListener {
      public void actionPerformed( ActionEvent e ) {
      }
  }
  
  // reset
  class reset extends boven implements ActionListener {
      public void actionPerformed( ActionEvent e ) {
      }
  }
  }
  </code></pre>
  
  <p><strong>For everyone who is trying to help me: Thank you for all your help and patience in advance!</strong></p>