为什么一直报错说未定义listener啊?求解哪里错了该怎么改
import java.awt.event.ActionEvent;
/**
* 登录的易做图,实现动作易做图接口
* 实现接口就必须将接口的方法全部实现
* @author Administrator
*
*/
public class listener implements java.awt.event.ActionListener{
private javax.swing.JTextField jt;
private javax.swing.JTextField mm;
private javax.swing.JLabel mlabel;
//重载构造方法,要求在构造对象的时候必须传入输入框对象
public listener(javax.swing.JTextField jt,javax.swing.JTextField mm,javax.swing.JLabel mlabel){
this.jt = jt;
this.mm = mm;
this.mlabel = mlabel;
}
//实现接口中的方法
//易做图中的方法是通过事件触发自动调用的
public void actionPerformed(ActionEvent e){
//获取帐号(获取帐号输入框中的数据)
//得到输入框中的字符串
String name = jt.getText();
String password = mm.getText();
if(name.equals("gaozhenyu")&&password.equals("csu14520")){
mlabel.setText("欢迎您!"+name);
}else{
mlabel.setText("");
//弹出提示框
javax.swing.JOptionPane.showMessageDialog(null, "帐号或密码错误,请检查!");
}
}
}
import javax.swing.JFrame;
/**
* 登录窗体类,继承JFrame
* @author Administrator
*
*/
public class mainjava extends JFrame {
public static void main(String args[]) {
//创建窗体对象
mainjava mj = new mainjava();
mj.initmainjava();
}
/**
* 初始化窗体的方法
*/
public void initmainjava(){
//this:指调用当前initLoginUI()方法的一个对象
this.setTitle("登录窗体");
this.setSize(300,200);
//设置布局
java.awt.FlowLayout fl = new java.awt.FlowLayout();
this.setLayout(fl);
//加组件
javax.swing.JLabel nameLabel = new javax.swing.JLabel("帐号:");
javax.swing.JLabel passwordLabel = new javax.swing.JLabel("密码:");
javax.swing.JTextField nameField = new javax.swing.JTextField(20);
javax.swing.JButton loginBut = new javax.swing.JButton("登录");
javax.swing.JCheckBox box = new javax.swing.JCheckBox("记住密码",true);
javax.swing.JLabel msgLabel = new javax.swing.JLabel();
this.add(nameLabel);
this.add(nameField);
this.add(loginBut);
this.add(msgLabel);
this.add(box);
this.add(passwordLabel);
this.setDefaultCloseOperation(3);
this.setVisible(true);
//创建动作易做图对象
listener lis = new listener(nameField,msgLabel);
//给按钮装上易做图
loginBut.addActionListener(lis);
}
} --------------------编程问答-------------------- 明显你调用的listener构造方法与定义的不匹配。
定义的构造器:(有三个参数)
public listener(javax.swing.JTextField jt,javax.swing.JTextField mm,javax.swing.JLabel mlabel){
this.jt = jt;
this.mm = mm;
this.mlabel = mlabel;
}
调用时的构造器:(用的时候却给的是2个参数)
listener lis = new listener(nameField,msgLabel);
改成匹配的,或重载个构造器。
补充:Java , Eclipse