java中找不到符合_Java错误:找不到符号,也无法弄清楚原因

错误:

error: cannot find symbol

什么看起来不起作用:

如果我写:“InvoerVakhandler扩展boven”然后错误消失,但然后我得到一个无限循环,最后程序崩溃并说堆栈溢出错误.

如果我尝试从类boven中更改“}”符号并将其放在文本的末尾,那么我甚至会收到更多错误消息.

问题:我需要在代码中更改哪些内容才能使其正常工作?

注意:

我是Java的新手,我知道有更多这样的帖子但我不能将它们应用到我的代码中,因为我目前对Java的理解有限.

如果有人想知道:我正在使用JCreator.

我想做的是:我想要做的是相当简单的.

1)在JTextField中填写名称,按Enter键,名称应出现在JTextArea中.名称在JTextArea之后,JTextField变为空,因此您可以填写另一个名称,依此类推,应该在JTextArea中显示一个名称列表. (这就是我现在要做的)

2)按下按钮kiesWin使程序从列表中选择一个随机的人.

3)按下resetL按钮重置程序,这样我就可以创建一个新的列表,从中选择一个随机的赢家.

出现错误的部分代码:(来自InvoerVakHandler类)

String invoer = invoervak1.getText();

由于我对java的知识有限,所以问题可能在任何地方乱丢,以防万一我将发布整个代码.

整码:

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 lijst;

public OnthoudNaam() {

lijst = new ArrayList();

}

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 ) {

}

}

}

对于每个试图帮助我的人:提前感谢您的帮助和耐心!

解决方法:

在课堂上讨论的行:InvoerVakHandler

变量在类中定义:boven

这就是为什么它找不到它.

我想你可以从传递给actionPerformed()方法的ActionEvent中获取事件的来源.

请注意,通常我们使用大写字母开始任何类的名称,小写开始方法和变量. (常数是个例外.)

标签:java

来源: https://codeday.me/bug/20190929/1832678.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值