gpt4 book ai didi

java - 是什么原因导致 "Can' t find Symbol”以及如何解决?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:47 25 4
gpt4 key购买 nike

我一直在努力解决这个问题,我在不同的程序中运行过它,所以它肯定在代码中。可能也很容易。错误说

Password2.java:90: error: cannot find symbol if(pw.equals(password)) ^ symbol: variable password location: class Password2.EnterButtonHandler 1 error

代码如下:

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

最佳答案

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

这需要一些练习,但一段时间后很容易看得更清楚:只需阅读下面的粗体文本作为句子:)

error: cannot find symbol [...]

symbol: variable password

location: [in] class Password2.EnterButtonHandler

password在该作用域/上下文中 (EnterButtonHandler)。

快乐编码。


提示:在不同范围/上下文中有一个具有相同名称的本地变量...也许它不应该是本地变量?参见 The Java Tutorial: Variables更多 :)

关于java - 是什么原因导致 "Can' t find Symbol”以及如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com