接口、抽象类、监听器

类可以分为三种:普通类、接口、抽象类。三者之间的主要区别在于,普通类中的方法必须都是普通方法,不能有抽象方法;接口中的方法只能是抽象方法,并且接口的访问权限必须都是public,属性必须都是常量;抽象类是介于普通类和抽象类之间的,故其既能有普通方法也能有抽象方法。
抽象方法就是指只有方法名而没有方法体去实现的方法。
接口的定义格式: public interface 文件名{} 作用:被普通类继承
普通类实现接口时所用的关键字:implements ,普通类实现接口时必须实现接口中所有的抽象方法。
抽象类的定义格式: public abstract class 文件名{} 作用:过度
有关监听器的使用见下方代码。


import javax.swing.*;
public class JFrameTest {
public static void main(String args[]){
JFrameTest jf = new JFrameTest();
jf.show();
}

public void show(){
//创建窗体对象
JFrame jf = new JFrame("QQ2013");
//设置窗体的布局管理
java.awt.FlowLayout fl = new java.awt.FlowLayout();
jf.setLayout(fl);
//设置窗体大小不能改变
jf.setResizable(false);
//设置窗体大小
jf.setSize(200,250);



//设置标签1
JLabel la_name = new JLabel("用户名:");
//将用户名对象添加到窗体上
jf.add(la_name);

//设置用户名标签的长度
JTextField jta = new JTextField(10);
jf.add(jta);



//设置标签2
JLabel la_name2 = new JLabel("密码:");
//将对象添加到窗体上
jf.add(la_name2);

//设置密码标签的长度
JPasswordField jta2 = new JPasswordField(10);
jf.add(jta2);


//创建按钮对象
JButton login = new JButton("登陆");
//添加按钮对象到窗体上
jf.add(login);
//创建名字
login.setActionCommand("login");

//创建按钮对象
JButton regist = new JButton("注册");
//添加按钮对象到窗体上
jf.add(regist);
//创建名字
regist.setActionCommand("regist");

//创建一个监听器
LoginListener lis = new LoginListener(jta,jta2,jf);
//将监听器添加到按钮上
login.addActionListener(lis);
regist.addActionListener(lis);


//设置窗体关闭时程序退出
jf.setDefaultCloseOperation(3);
//设置窗体可见
jf.setVisible(true);
}
}


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;


public class LoginListener implements ActionListener{
JTextField jta;
JPasswordField jta2;
JFrame jf ;
//重载构造函数
public LoginListener(JTextField jta,JPasswordField jta2,JFrame jf){
this.jta = jta;
this.jta2 = jta2;
this.jf = jf;
}

@Override
public void actionPerformed(ActionEvent arg0){
/**
* 得到按钮的名字
*/
String s = arg0.getActionCommand();
//System.out.println(s);

String user = jta.getText();
@SuppressWarnings("deprecation")
String num = jta2.getText();


/**
* 判断点击的是那个按钮
*/
if("login".equals(s)) {
/**
* 如果点击的是登录按钮,先判断用户名和密码是否正确
*/
if("aaa".equals(user ) && "123456".equals(num)){
System.out.println("登录成功!");
//出现一个新的窗体
JFrame jf1 = new JFrame("画板");
//设置窗体大小不能改变
jf1.setResizable(false);
//设置窗体大小
jf1.setSize(250,250);
jf1.setVisible(true);

//让第一个窗体消失
jf.dispose();
}
else
javax.swing.JOptionPane.showConfirmDialog(null, "登陆失败!");
}
/**
* 当点击的不是“登录”而是“注册”时
*/
else {
//出现一个新的窗体
JFrame jf1 = new JFrame("注册");
//设置窗体大小不能改变
jf1.setResizable(false);
//设置窗体大小
jf1.setSize(500,500);

jf1.setVisible(true);
}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值