抽象类、接口和监听器

抽象类也是一种类,和普通类相比,它既含有普通方法,也含有抽象方法。抽象方法是声明而未实现的方法,所有抽象方法必须使用abstract关键字声明,包括抽象类也必须使用abstract class声明。抽象类不能则直接实例化,它介于普通类和接口之间。接口,有以下两点特征:1)接口的数据成员必须初始化,且数据成员虚伪常量。2)接口的方法必须全为抽象方法。另外,接口中的方法全为public型的,接口的定义也不用class而是interface。抽象类的继承用extends,而接口的继承用implements,一个子类只能继承一个抽象类,但是却可以同时继承多个接口。
[code="java"]import javax.swing.*;
import java.awt.*;
public class LonginFrame {
public static void main(String [] args){
JFrame j=new JFrame();
j.setTitle("登陆界面");
j.setSize(180,150);
j.setResizable(false);
FlowLayout f=new FlowLayout();
j.setLayout(f);
JLabel name=new JLabel("账号");
j.add(name);
JTextField jt=new JTextField(10);
j.add(jt);
JLabel pass=new JLabel("密码");
j.add(pass);
JPasswordField jp=new JPasswordField(10);
j.add(jp);
JButton bu1=new JButton("登陆");
j.add(bu1);
JButton bu2=new JButton("注册");
j.add(bu2);
j.setDefaultCloseOperation(3);
j.setVisible(true);
Listener l=new Listener(jt,jp,j);/*创建监听器对象,调用Listener中的构造方法,把jt、jp和j地址传递给Listener*/
bu1.addActionListener(l);//把监听器附在登陆按钮上


}

}[/code]
import java.awt.event.*;
import javax.swing.*;
public class Listener implements ActionListener{//继承接口ActionListener
JTextField jt;
JPasswordField jp;
JFrame j;//使jt、jp、jp和j的使用范围为整个类
public Listener(JTextField jf,JPasswordField jpf,JFrame j2){
jt=jf;
jp=jpf;
j=j2;
}//此时jf、jpf和j2指向LinginFrame类中jt、jp和j地址,并把地址赋给jt、jp和j。
public void actionPerformed(ActionEvent e){//重写接口方法

String name=jt.getText();
String pass=jp.getText();
if("123".equals(name)&&"123".equals(pass)){
JFrame j1=new JFrame();
j1.setSize(300,150);
j1.setVisible(true);
j.dispose();

}
else{
System.out.println("账号或密码错误");
}

}



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值