什么原因导致“找不到符号"?以及如何解决它? [英] What causes "Can't find Symbol" and how to fix it?
问题描述
我一直在努力解决这个问题,我在不同的程序中运行过它,所以它肯定在代码中.可能也很容易.错误说
I've been trying to figure this out, I've run it in different programs so it's definitely in the code. Probably something easy too. The error says
Password2.java:90: 错误:找不到符号if(pw.equals(密码))^符号:可变密码位置:类 Password2.EnterButtonHandler1 个错误
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
推荐答案
阅读错误信息,喜欢错误信息.
Read the error message, love the error message.
这需要一些练习,但过一会儿就很容易看清楚了:只需将下面的粗体文本作为句子阅读:)
It takes some practice, but after awhile it's easy to see it more clearly: just read across the bold text below as a sentence :)
错误:找不到符号 [...]
符号:变量密码
位置:[in] class Password2.EnterButtonHandler
location: [in] class Password2.EnterButtonHandler
在该范围/上下文中没有名为 password
的内容 (EnterButtonHandler
).
There is nothing named password
in that scope/context (EnterButtonHandler
).
快乐编码.
提示:在不同范围/上下文中有一个同名的local变量......也许它不应该是localem> 变量?有关更多信息,请参阅 Java 教程:变量 :)
Hint: there is a local variable with the same name in a different scope/context... perhaps it shouldn't be a local variable? See The Java Tutorial: Variables for more :)
这篇关于什么原因导致“找不到符号"?以及如何解决它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!