萌新想问问为什么会报错呢?怎么访问构造函数里的name和pass啊?

为什么会报错啊,是不能访问到构造函数里的Name和Pass吗?为什么两句代码报错的位置还不同呢?

public class Test01 extends JFrame implements ActionListener {

    public Test01(){
    //1.设置标题
    this.setTitle("登陆");        
    //2.设置在屏幕上的位置
    GraphicsEnvironment a=GraphicsEnvironment.getLocalGraphicsEnvironment();
    Rectangle rec=a.getDefaultScreenDevice().getDefaultConfiguration().getBounds();
    double x=(rec.getWidth()-260)/2;
    double y=(rec.getHeight()-220)/2;
    this.setLocation((int)x, (int)y);
    //3.设置大小
    this.setSize(260, 220);
    //4.设置logo
    Image image=Toolkit.getDefaultToolkit().createImage("D:/图片/杂/logo.jpg");
    this.setIconImage(image);
    //5.正常退出
    this.setDefaultCloseOperation(Test01.EXIT_ON_CLOSE);
    //6.关闭最大化
    this.setResizable(false);
    //7.布局管理
    //框架默认布局 管理器 边界布局
    //添加面板 透明的容器 不能单独存在 默认布局 流式 FlowLayout
    JPanel jplMain=new JPanel();  //主面板
    this.getContentPane().add(jplMain); //用自己的面板替换框架的内容面板
    JPanel jplTop=new JPanel(); //上面版
    JPanel jplMid=new JPanel(); //中面板
    JPanel jplBot=new JPanel(); //下面版
    //将面板添加到容器中
    jplMain.add(jplTop);
    jplMain.add(jplMid);
    jplMain.add(jplBot);
    //修改面板的布局管理器为网格且3行1列
    jplMain.setLayout(new GridLayout(3,1));
    //接下来设置各个面板
    //上面版
    JLabel lblTop=new JLabel(new ImageIcon("D:/图片/杂/main.jpg"));
    jplTop.add(lblTop);
    //中面板
    JLabel lblName=new JLabel("用户名:");
    JTextField Name=new JTextField(16);
    JLabel lblPass=new JLabel("密    码:");       
    JPasswordField Pass=new JPasswordField(16);
    Name.setForeground(Color.red);
    jplMid.add(lblName);
    jplMid.add(Name);
    jplMid.add(lblPass);
    jplMid.add(Pass);
    //下面版
    JLabel lblSelect=new JLabel("请选择服务器:    ");
    JComboBox Select=new JComboBox(
            new String[]{"1","2","3","4"}
            );
    JButton Login=new JButton("登陆(L)");
    JButton Exit=new JButton("退出(X)");
    //设置热键
    Login.setMnemonic('L');
    Exit.setMnemonic('X');
    //设置提示
    Login.setToolTipText("点击登录");
    Exit.setToolTipText("点击退出");
    //设置监听器
    Login.addActionListener(this);

    jplBot.add(lblSelect);
    jplBot.add(Select);
    jplBot.add(Login);
    jplBot.add(Exit);

}

@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    String name=Name.getText();
    String pass=Pass.getText();
    if(name.equals("admin")&&pass.equals("666")) {
        JOptionPane.showMessageDialog(null, "登陆成功!");
    }
    else {
        JOptionPane.showMessageDialog(null, "登陆失败!");
    }

}


public static void main(String[] args) {
    new Test01().setVisible(true);
}

}

在这两个地方报错图片说明
错误原因:1.The method getText() is undefined for the type Attributes.Name
2.Pass cannot be resolved

拜托拜托!想了好久!

0

2个回答

把构造函数中定义的局部变量都变成成员变量,像这样:

public class Test01 extends JFrame implements ActionListener {

    JPanel jplMain;  //主面板
    JPanel jplTop; //上面版
    JPanel jplMid; //中面板
    JPanel jplBot; //下面版

    JLabel lblName;
    JTextField Name;
    JLabel lblPass;       
    JPasswordField Pass;

    public Test01(){
    jplMain=new JPanel();  //主面板
    jplTop=new JPanel(); //上面版
    jplMid=new JPanel(); //中面板
    jplBot=new JPanel(); //下面版
    this.getContentPane().add(jplMain); //用自己的面板替换框架的内容面板

    lblName=new JLabel("用户名:");
    Name=new JTextField(16);
    lblPass=new JLabel("密    码:");   
    Pass=new JPasswordField(16);
    。。。。。
    }
}
0
qq_43709292
qq_43709292 回复毕小宝: 好的,了解了,感谢感谢!
2 个月之前 回复
wojiushiwo945you
毕小宝 回复qq_43709292: 成员变量定义的地方不正确,你现在都定义在Test01构造函数中,就是局部变量,其他方法中是无法访问到的。把里面所有定义的变量都挪到类外面定义,然后在构造函数中new。
2 个月之前 回复
qq_43709292
qq_43709292 eclispe告诉我的错误原因是1.The method getText() is undefined for the type Attributes.Name 2.Pass cannot be resolved
2 个月之前 回复

界面上有没有一个 JTextBox,叫做Name

0
qq_43709292
qq_43709292 回复caozhy: 哦!明白了,多谢
2 个月之前 回复
caozhy
weixin_45841714 回复qq_43709292: 是作为成员变量还是局部变量的
2 个月之前 回复
qq_43709292
qq_43709292 有的啊,我写了 JTextField Name=new JTextField(16);
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

2
萌新想问问为什么会报错呢?怎么访问构造函数里的name和pass啊?
9
启动tomcat,报错不知道怎么解决
2
mybatis struts2 spring整合配置怎么配?
1
ssm框架,当spring配置文件和springmvc配置文件合并时能正常运行,分开后就报错
1
请问为什么后面的if语句在while循环内才可以返回集合,在while循环外返回报错?
1
Android 怎么在不使用 Radiobutton的情况下,利用两个普通button实现单选的功能???
0
在myeclipse上本来用的mysql数据库,现在换成DM7,sql语句具体都改什么啊?
2
为什么用java向mysql里插入数据,执行了一次却插入了两条数据???
0
jdk这是什么原因造成的,输入javac,java,java -verson都会显示报错
0
myeclipse加载报表配置xml文件失败,项目无法正常运行,怎么解决?
3
SpringMvc怎么把web.xml配置换成java配置
1
DM7加载不上驱动,本来我用mysql数据库能跑起来,现在改成DM7就一直报错
0
eclipse在画窗口的时候可以出现窗口,但是一关闭就会出现警告怎么解决?
3
为什么ArrayList用set之后,运行出来是这样的?(麻烦大神帮忙解释一下,刚接触编程不太懂)
4
有没有大神看一下代码,新手真的看不懂逻辑。为什么会返回5?
0
来大佬帮我看一个,最后的零怎么输出不了
1
c3p0遇到报错: 对实体 "serverTimezone" 的引用必须以 ';' 分隔符结尾”
0
xmlHttp.open("GET",url,true);执行以后既不报错,也没有访问到servlet,这是为什么?
7
eclipse 中 导入项目修改 jsp前端界面报错
4
用Java计算1+10+101+1010+10101...前十项和,为什么会错误?