`
fuziyi0405
  • 浏览: 4367 次
社区版块
存档分类
最新评论

QQ登录界面模仿和事件监听(上)

阅读更多
标题是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
0
1
分享到:
评论

相关推荐

    vc++ 应用源码包_2

    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...

    vc++ 应用源码包_6

    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...

    vc++ 应用源码包_1

    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...

    vc++ 应用源码包_5

    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...

    vc++ 应用源码包_3

    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...

    vc++ 开发实例源码包

    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 class ...

    Android应用源码安卓源码(172个合集).zip

    tablelogin(登陆界面).rar TankWar坦克大战.zip telecapoland-jamendo-android-6cd07fb(国外开源音乐播放器) TorProxy应用实现了Android手机无线电电传通讯(TOR).rar UI设计之 仿做蘑菇街UI设计 源码.zip ...

    java源码包---java 源码 大量 实例

    第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...

    JAVA上百实例源码以及开源项目源代码

    第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...

    java源码包2

    第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...

    java源码包3

    第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...

    java源码包4

    第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...

    JAVA上百实例源码以及开源项目

    第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    多人聊天室 3个目标文件 第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本...

Global site tag (gtag.js) - Google Analytics