我一直试图解决这个问题,我已经在不同的程序中运行它,所以它肯定在代码中.可能也很简单.错误说
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
该范围/上下文(EnterButtonHandler)中没有命名密码.
快乐的编码.
提示:在不同的范围/上下文中有一个具有相同名称的局部变量…也许它不应该是局部变量?有关详情,请参阅The Java Tutorial: Variables
总结
以上是DEVMAX为你收集整理的java – 导致“找不到符号”的原因以及如何修复它?全部内容。
如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。