Java error: cannot find symbol, and can't figure out why
<p><strong>Error:</strong></p>

<pre><code>error: cannot find symbol
</code></pre>

<p><strong>What appears doesn't works:</strong></p>

<p>If I write: "InvoerVakhandler extends boven" then the error disapears but then I get an endless loop and in the end the program crashes and says stack overflow error.</p>

<p>If I try to change the "}" symbol from class boven and place it in the end of the text then I even get more error messages.</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>1) 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>2) Push the button kiesWin to make the program choose a random person from the list.</p>

<p>3) 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>Part of the code where the error appears:</strong> (from the class InvoerVakHandler)</p>

<pre><code>String invoer = invoervak1.getText();
</code></pre>

<p>With my limited knowledge of java the problem could be litterly anywhere so in case I will post the whole code.</p>

<p><strong>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 );
}

public class boven extends Paneel {
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();
}
}

// this is the part where the code goes wrong
public class InvoerVakHandler 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 implements ActionListener {
    public void actionPerformed( ActionEvent e ) {
    }
}

// reset
class reset 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>
