标题是QQ登录界面模仿和事件监听,不过我们要先从时间监听讲起。
这两块内有一定的相关性,加在一起太长,所以我分成(上)(下)两部分。
另,这次的QQ界面算做完基本的程度,QQ登录界面模仿与事件监听的应用(上),不过还有有待美化的地方,所以呢,敬请期待下次的完善版本,^ ^
OK,先来讲事件监听器。
啥是事件监听器?相信你已经了解了,要是忘记了基本概念先自行做个基本了解哦。
addActionListener(ActionListener);
addMouseListener(MouseListneer);
addMouseMOtionListener(MouseMOtionListener);
addKeyListener(KeyListener);
这四个监听器方法对应的事件接口分别是
ActionListener
MouseListner
MouseMotionListener
KeyListener
这四个方法都很好记,顾名思义,分别是对按钮等组件,鼠标,键盘动作的事件方法。
整个事件发生的过程和产生调用行为的过程是这样子滴:
事件源发生动作--->监听器方法监听到--->实现你监听器里写的方法。
但是,与类不同,事件接口不能直接实例化,只能新建一个类实现这个接口,将这个类实例化,再调用这个类的监听方法。
实现接口的关键字是implements。
比如说?
比如说,我这个YOYOYO无任何修饰的登录界面程序。上面是输入框,下面是Password框,让它在被输入了我指定的值后点“YOYOYO”这个按钮,有所反应。
我这里指定的是上面的文本框输入yoyoyo,下面的密码框输入的是hehehe时在文本框中显示“输入正确”,否则输出密码不匹配。
所以监听器里的方法是这样的:
public void actionPerformed(ActionEvent e){
//去除输入框输入的字符串给s
String s=jtb1.getText();
String s1=jpw1.getText();
//比较s的值是否和yoyoyo一样
if (s.equals("yoyoyo")&&s1.equals("hehehe")){
jtb1.setText("输入正确");
}
else{
jtb1.setText("密码不匹配");
}
}
你肯定注意到这里用了jtb1文本框和jpw1密码框这两个组件。它们是在继承addListener接口的一个类里的,要让这两个组件调取出的值,跟main主函数所在的类里定义的jtb文本框和jpw密码框的值相同,那么就需要用构造方法来传参啦。传参前也要首先声明jtb1和jpw1的类型。
如下:
//指向界面上的输入框对象
private JTextField jtb1;
private JPasswordField jpw1;
//定义一个setText方法,传入jtb这个对象
public void setText(JTextField jtb,JPasswordField jpw){
jtb1=jtb;
jpw1=jpw;
}
运行结果是这样的:
下面贴出全部代码:
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class YOFrame extends JFrame{
public static void main(String args[]){
YOFrame YO=new YOFrame();
YO.UI();
}
//设置初始界面的外形组件
public void UI(){
this.setTitle("YOYOYO");
this.setSize(200,200);
this.setLayout(new FlowLayout(FlowLayout.LEFT));
this.setDefaultCloseOperation(3);//关闭窗体时,退出程序
//给按钮添加监听器
JButton jbu=new JButton("YOYOYO");
YOInterface YOinter=new YOInterface();
jbu.addActionListener(YOinter);
JTextField jtb=new JTextField();
jtb.setPreferredSize(new Dimension(100,30));
//YOinter调用setText方法
JPasswordField jpw=new JPasswordField();
jpw.setPreferredSize(new Dimension(100,30));
YOinter.setText(jtb,jpw);
//将jbu,jtb控件加到界面上
this.add(jbu);
this.add(jtb);
this.add(jpw);
this.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 YOInterface implements ActionListener{
//指向界面上的输入框对象
private JTextField jtb1;
private JPasswordField jpw1;
//定义一个setText方法,传入jtb这个对象
public void setText(JTextField jtb,JPasswordField jpw){
jtb1=jtb;
jpw1=jpw;
}
public void actionPerformed(ActionEvent e){
//去除输入框输入的字符串给s
String s=jtb1.getText();
String s1=jpw1.getText();
//比较s的值是否和yoyoyo一样
if (s.equals("yoyoyo")&&s1.equals("hehehe")){
jtb1.setText("输入正确");
}
else{
jtb1.setText("密码不匹配");
}
}
}
- 大小: 5.1 KB
- 大小: 8 KB
- 大小: 5.1 KB
分享到:
相关推荐
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 class ...
tablelogin(登陆界面).rar TankWar坦克大战.zip telecapoland-jamendo-android-6cd07fb(国外开源音乐播放器) TorProxy应用实现了Android手机无线电电传通讯(TOR).rar UI设计之 仿做蘑菇街UI设计 源码.zip ...
第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...
第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...
第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...
第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...
第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...
第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...
多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本...
多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本...