java中接口和事件监听器的深入理解
一:接口
接口在我们生活中无处不在,通过一个usb接口,我们可以通过u盘传输数据,这个接口是被定义过的,只有指定的类型能够使用这个接口,且通过这个接口我们传输的数据不会被破坏。
而在java中接口作用类似,定义一个具有特定特点的接口,在合适的地方引用它,执行所对应的功能,这样能够实现代码的分离。
下面我们来看一下接口的定义:
关键字:interface
格式:publicinterface接口名{ }
接口的属性:
[publicstaticfinal]属性类型属性名=属性值;
static:静态的,修饰的内容可以通过类名或接口名直接访问。
final:不可改变的,修饰属性,则属性必须初始化。
[ ]里的内容可以省略
接口的方法:
[publicabstract]方法返回值类型方法名(参数类型参数名)
abstract:抽象的,修饰方法,则方法不能有方法体。
[ ]中内容可以省略
接口的使用:
接口不能创建对象,需要接口类型的对象则需要创建一个类,从而实现接口
关键字:implements
格式:publicclass类名implements接口名{ }
**注意:在类中实现接口时,必须实现接口中所有的方法**
总结来说,接口相当于制定了一种规则,只有符合这种规则了才能进入相应的接口。
二:事件监听机制
想象一下,比如在生活中,有一个摄像头在监视着小明,监督他好好学习,如若发现他在做别的事情则会发出警告提示让他继续学习,而在java中原理也是一样。
给事件源组件添加事件监听器,当事件源组件上发生相应类型的事件时,则自动的调用监听器中的内容。
在电脑上常见的事件类型有三种
鼠标事件:用鼠标操作组件(鼠标的移动,点击,松开)
键盘事件:用键盘操作组件(按动键盘的按键)
动作事件:包含鼠标点击按钮,键盘确认等。
事件源组件:事件发生所在的组件,比如在一个创建好的画图板上。
事件监听器:java中为每一种类型的事件都提供了一个对应类型的事件监听器。
鼠标事件监听器:MouseListener
键盘事件监听器:KeyListener
动作事件监听器:ActionListener
事件监听器的实现:
第一步:确定事件源组件
例如一个按钮
第二步:确定事件类型
点击按钮则为动作事件
第三步:
创建一个监听器类,实现对应类型的监听器接口
第四步,在源程序创建监听器对象,给事件源组件添加事件监听器。
下面我们看一个登陆界面的实例
这一段是建立一个登陆界面
publicclassUI{
/**
*
*/
publicvoidshowIU(){
//建立新界面
JFrameframe=newJFrame();
frame.setSize(600,900);
//用户点击关闭窗口时关闭界面
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//流式布局
FlowLayoutlayout=newFlowLayout();
frame.setLayout(layout);
//插入账号文本框
JTextFieldregister=newJTextField(30);
frame.add(register);
//标签1
JLabellabel1=newJLabel("注册账号");
frame.add(label1);
//密码
JPasswordFieldword=newJPasswordField(30);
frame.add(word);
//标签2
JLabellabel2=newJLabel("找回密码");
frame.add(label2);
JCheckBoxcheckbox=newJCheckBox("记住密码");
frame.add(checkbox);
//设置复选框大小
Dimensioncheck=newDimension(200,35);
checkbox.setPreferredSize(check);
//加入接口类
lisenerlisen=newlisener();
//给按钮添加监听器
butt.addActionListener(lisen);
//让监听器的文本框和处理的文本框对应
lisen.nameinput=register;
lisen.passinput=word;
//让监听器的框与此相同
lisen.jiemian=frame;
word.addActionListener(lisen);
/*
//加入接口
Listener2lisen1=newListener2();
//添加监听器
word.addKeyListener(lisen1);
//对应文本框和密码框
lisen1.name1=register;
lisen1.pass1=word;
lisen1.frame=frame;
*/
//设置界面可见
frame.setVisible(true);
}
publicstaticvoidmain(String[]args){
UIui=newUI();
ui.showIU();
}
}
我们从中建立了两个接口,两个动作监听器分别监听按钮是否点击和是否按键盘上的按键,从此出现相应结果。
importjava.awt.event.ActionListener;
importjava.awt.event.ActionEvent;
importjavax.swing.JDialog;
importjavax.swing.JTextField;
importjavax.swing.JOptionPane;
importjavax.swing.JFrame;
publicclasslisenerimplementsActionListener{
JTextFieldnameinput;
JTextFieldpassinput;
JFramejiemian;
publicvoidactionPerformed(ActionEvente){
System.out.println("鼠标点击了");
Stringname=nameinput.getText();
Stringpassword=passinput.getText();
if(name.equals("majunlong")&&password.equals("12345678")){
System.out.println("登陆成功");
jiemian.dispose();
}
else{
System.out.println("登陆失败");
JOptionPanepane=newJOptionPane();
JOptionPane.showMessageDialog(null,"登陆失败","警告",JOptionPane.ERROR_MESSAGE);
}
}
}
这是一个鼠标监听器,当按钮被点击时发出提示框登陆成功或失败。
importjava.awt.event.KeyEvent;
importjava.awt.event.KeyListener;
importjavax.swing.JTextField;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
publicclassListener2implementsKeyListener{
JTextFieldname1;
JFrameframe;
JTextFieldpass1;
publicvoidkeyTyped(KeyEvente){
//TODOAuto-generatedmethodstub
}
publicvoidkeyPressed(KeyEvente){
//TODOAuto-generatedmethodstub
}
publicvoidkeyReleased(KeyEvente){
//TODOAuto-generatedmethodstub
System.out.println("鼠标点击了");
Stringname=name1.getText();
Stringpassword=pass1.getText();
if(name.equals("majunlong")&&password.equals("12345678")){
System.out.println("登陆成功");
frame.dispose();
}
else{
System.out.println("登陆失败");
JOptionPanepane=newJOptionPane();
JOptionPane.showMessageDialog(null,"登陆失败","警告",JOptionPane.ERROR_MESSAGE);
}
}
}
键盘监听器,在输入密码之后按下回车,获得相应提示。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。