当前位置: 首页 > 面试题库 >

什么原因导致“找不到符号”以及如何解决它?

郭永怡
2023-03-14
问题内容

我一直试图弄清楚这一点,我已经在不同的程序中运行过它,因此它肯定在代码中。可能也很容易。错误说

Password2.java:90:错误:找不到符号if(pw.equals(password))^符号:变量密码位置:类Password2.EnterButtonHandler
1错误

这是代码:

// Password1.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Password2 extends JFrame // inherits from the JFrame class 
{
    // static final variables to hold frame dimensions (in pixels) 
    private static final int WIDTH = 400;
    private static final int HEIGHT = 120;

    //declare labels, fields, buttons, etc.
    private JLabel enterLabel, validLabel, resultLabel;
    private JTextField pwTextField;
    private JButton enterB, clearB;

    private EnterButtonHandler ebHandler;
    private ClearButtonHandler cbHandler;

    public Password2() // constructor defines frame 
    { 
            setTitle( "Password Checker" ); // set the title of the frame
        setSize( WIDTH, HEIGHT ); // set the frame size

        // prepare the container 
        Container pane = getContentPane();
        GridLayout aGrid = new GridLayout( 3, 2, 5, 5 ); // create a 3 row 2 column layout
        pane.setLayout( aGrid ); // set the layout for the frame

        String password = "hello";

        //instantiate JLabels
        enterLabel = new JLabel("Enter Password: ");
        validLabel = new JLabel("Validation: ");
        resultLabel = new JLabel("");

        //instantiate text fields
        pwTextField = new JPasswordField( 30 );

        //instantiate buttons
        enterB = new JButton("Enter");
        clearB = new JButton("Clear");

        //initialize button handler
        ebHandler = new EnterButtonHandler();
        enterB.addActionListener(ebHandler);

        //initialize button handler
        cbHandler = new ClearButtonHandler();
        clearB.addActionListener(cbHandler);


        pane.add(enterLabel);
        pane.add(pwTextField);
        pane.add(validLabel);
        pane.add(resultLabel);
        pane.add(enterB);
        pane.add(clearB);

        //calls center frame method
        centerFrame( WIDTH, HEIGHT );

    }// end constructor

    //methood to center GUI on screen
    public void centerFrame( int frameWidth, int frameHeight)
    {
        //create toolkit object
        Toolkit aToolkit = Toolkit.getDefaultToolkit();

        //create a dimension object with user screen information
        Dimension screen = aToolkit.getScreenSize();

        //assign x, y position of upper left corner of frame
        int xUpperLeft = ( screen.width - frameWidth ) / 2;
        int yUpperLeft = ( screen.height - frameHeight ) / 2;

        //method to position frame on user's screen
        setBounds( xUpperLeft, yUpperLeft, frameWidth, frameHeight );
    }

    private class EnterButtonHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            String pw = pwTextField.getText();

            if(pw.equals(password))
            {
                resultLabel.setText("Password Accepted");
                pwTextField.setText("");
            }
            else
            {
                resultLabel.setText("Password Rejected");
                pwTextField.setText("");
            }
        }
    }
    private class ClearButtonHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            resultLabel.setText("");
            pwTextField.setText("");
        }

    }
    public static void main(String [] args) 
    {
        JFrame aPassword2 = new Password2(); // create the JFrame object
        aPassword2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        aPassword2.setVisible(true);
    }
    } // end of class

问题答案:

阅读错误消息,喜欢错误消息。

这需要一些练习,但是过一会儿就很容易看清楚:只需将下面的粗体作为句子阅读即可:)

错误: 找不到符号 […]

符号:可变 密码

位置: [在] Password2类中。 EnterButtonHandler

password 该作用域/上下文EnterButtonHandler)中未命名。

快乐的编码。

提示:在 不同的 作用域/上下文中有一个具有相同名称的 局部 变量……也许它不应该是 局部
变量?有关更多信息,请参见Java教程:变量。





 类似资料:
  • 问题内容: 我写了一个控制台应用程序就跑,然后。这很好。 然后,我创建了一个包,并将helloworld.java移入其中(包导入语句正确生成为)。然后我运行了它,效果也很好,并正确生成了类。 但是,当我从控制台运行时,它引发了“找不到类”错误。 请谁能告诉我这是什么问题? 问题答案: 尝试跑步 其中ABSOLUTE_PATH指向类文件以及程序包所在的目录。说它是生成类文件的目录,以及与源文件相同

  • 我试图用Mac M1在Android studio Arctic fox 2020.3.1中构建基于Dagger2的Android项目,但我遇到了错误, 错误:找不到符号导入xxxx.com.xxxx.di。DaggerAppComponent;^符号:类别DaggerAppComponent 这也显示了 原因:java.lang.异常 同一个项目在另一台机器上工作(不是mac)。 此外,我无法在

  • 问题内容: 我正在修改继承的代码,并不断收到奇怪的“找不到符号”错误,这使我不知所措。 同行车: 公司简介: 我已经三重检查,但到目前为止找不到任何错误的代码。我正在Netbeans 7.0.1中构建它。我应该提到在构建时遇到此错误,但是我可以运行Web应用程序而没有任何问题(尚未)。但是我担心这种情况可能会重新出现在后面。 我只是在文件树中注意到,在CompanyDAO类上方是类似命名的文件,其

  • 问题内容: 错误: 出现的内容不起作用: 如果我写:“ InvoerVakhandler扩展了boven”,则该错误消失了,但是随后我得到了一个无限循环,最后程序崩溃并说堆栈溢出错误。 如果我尝试更改boven类中的“}”符号并将其放置在文本的末尾,那么我什至会收到更多错误消息。 问题: 我必须在代码中进行哪些更改才能使其正常工作? 注意: 我是Java的新手,我知道有更多类似这样的文章,但是由于

  • 问题内容: 与多个用户一起测试我的应用程序时,我遇到了ORA-00060死锁错误。我不确定如何确定此错误的原因,因此,如果有人可以帮助我,将不胜感激。 我查看了为此事件生成的跟踪文件,它显示了导致此问题的查询: 它也产生了这个: 我如何使用以上信息来找出导致问题的原因?TABLE_A或TABLE_B上都没有任何未索引的外键(我相信这通常是导致这种类型错误的原因)。 当我运行此查询时: 我在完全不同

  • 本文向大家介绍MyBatis-Plus自动填充功能失效导致的原因及解决,包括了MyBatis-Plus自动填充功能失效导致的原因及解决的使用技巧和注意事项,需要的朋友参考一下 1:先检查 字段有没有加上注解 @TableField(fill = FieldFill.INSERT_UPDATE) 2:有没有实现 MetaObjectHandler 接口 ,并且加入到 Spring 容器中 3: @C