当前位置:编程学习 > JAVA >>

为什么一直报错说未定义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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,