首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

求大神帮忙解决调用函数有关问题

2013-08-01 
求大神帮忙解决调用函数问题我在用java写学生成绩管理系统,现在遇到一个问题,就是事件监听器在传事件的时

求大神帮忙解决调用函数问题
我在用java写学生成绩管理系统,现在遇到一个问题,就是事件监听器在传事件的时候没办法传过去,我写了三个java文件,在同一个包里。
这是主函数的java文件代码:


package ManageSystem;

public class ManageSystem {
public static void main(String[] args) {
MSFrame frame=new MSFrame("学生成绩管理系统");
frame.setVisible(true);
}
}



这是MSFrame的代码,第二个java文件的代码:

package ManageSystem;

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

class MSFrame extends JFrame{
JLabel label,lblUser,lblPassword;
JTextField tfUser,tfPassword;
JButton btnLogin;
public MSFrame(String s){
//创建系统登陆界面
super(s);
label=new JLabel("南京晓庄学院学生成绩管理系统");
lblUser=new JLabel("User:");
lblPassword=new JLabel("Password:");
tfUser=new JTextField(10);
tfPassword=new JTextField(20);
btnLogin=new JButton("Login");

Listener bm=new Listener();
btnLogin.setBackground(new Color(204,204,255));

//布局
Box box=Box.createVerticalBox();
box.add(label);
Box bh1=Box.createHorizontalBox();//用户名User
bh1.add(lblUser);
bh1.add(Box.createHorizontalStrut(8));
bh1.add(tfUser);
box.add(bh1);
box.add(Box.createVerticalStrut(8));
Box bh2=Box.createHorizontalBox();//密码Password
bh2.add(lblPassword);
bh2.add(Box.createHorizontalStrut(10));
bh2.add(tfPassword);
box.add(bh2);
box.add(Box.createVerticalStrut(8));
box.add(btnLogin);
box.add(Box.createVerticalStrut(8));

this.add(box);
this.setBounds(250,250,480,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


btnLogin.addActionListener(bm);

}
}



这是事件监听器的代码,第三个java文件的代码:

package ManageSystem;

import java.awt.event.*;

public class Listener implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
String User="iamthemanager";
String Password="iamthemanager";
String getUser=bm.tfUser.getText();
}
}



问题在这:btnLogin.addActionListener(bm);
bm这个变量传到事件监听器的时候,就是到这句话“String getUser=bm.tfUser.getText();”的时候,说无法解析bm,我没办法从文本中得到文本框的内容,求详细的解决办法,不要太简短,小弟理解能力比较差。谢谢大神了 Java 类

分享到:
[解决办法]
Listener 加上一个成员,构造时传入。
[解决办法]

引用:
Quote: 引用:

用匿名内部类试试

        btnLogin.addActionListener(new Listener(){
            public void actionPerformed(ActionEvent e) {
                String User="iamthemanager";
                String Password="iamthemanager";
                String getUser=tfUser.getText();
            }
        });


不,我现在就是要模块话,用内部类我会写,现在我要分开多个java文件。

嗯,要不你的listener再增加一个属性:tfUser,new Listener的时候,把tfUser传进来初始化下。

热点排行