只有在图形界面上加入对事件的处理,才会让界面有意义
在QQ的登录界面上,按下了“登录”按钮,服务器才会检测你的账号密码是否正确,决定你能否登录成功。
那么什么时候发生了事件呢,在生活中,如果不去时不时看看,你不会知道。在Java,就叫做Listener。Java给我们提供了各种Listener。[/align]
1.
最简单的举例就是关于按钮的监听。
当我们将按钮按下的时候按钮的状态就发生了改变,那么这个按下的事件就是要被我们监听的。
这时要用到ActionListener。
简单的创建一个按钮的监听器
package jiantingqi;
import java.awt.event.ActionEvent;//一般会自动import进来,如果没有一定要手动。
public class ButtonListener implements java.awt.event.ActionListener {
/**
* ActionListener 里面只有一种抽象方法,就是actionPerformed(ActionEvent e),此时只需要重写这个方法。
*/
public void actionPerformed(ActionEvent e){
System.out.println("矮油~我被按了一下!");
}
}
package jiantingqi;
;
/**'
* 创造一个简单的图形界面
* @author 小湖
*
*/
public class SimpleUI extends javax.swing.JFrame {
public static void main (String args[]){
/**
* 实例化一个窗口对象
*/
SimpleUI su = new SimpleUI();
su.setTitle("简单窗体");
su.setSize(300, 200);
/**设置布局管理
*
*/
java.awt.FlowLayout fl = new java.awt.FlowLayout();
su.setLayout(fl);
/**
* 实例化简单的组件 标签 、文本框、 按钮
*/
javax.swing.JLabel jl_code = new javax.swing.JLabel("账号");//JLabel的构造方法可以直接传入字符串
javax.swing.JTextField jt_code = new javax.swing.JTextField(20);//JTextField 可以直接传入长度
javax.swing.JLabel jl_password = new javax.swing.JLabel("密码");
javax.swing.JPasswordField jpf= new javax.swing.JPasswordField(20);
javax.swing.JButton jb = new javax.swing.JButton("登录");//可以直接传入按钮的名称
/**
* 将组件逐一添加到窗体中
*/
su.add(jl_code);
su.add(jt_code);
su.add(jl_password);
su.add(jt_password);
su.add(jb);
/**
* 关闭时退出程序
*/
su.setDefaultCloseOperation(3);
/**
* 让窗体课件
*/
su.setVisible(true);
/**
* 设置监听器对象
*/
ButtonListener bl = new ButtonListener();
jb.addActionListener(bl);//调用addActionListener方法的是按钮,传入的参数是按钮监听器对象
}
}
此时会出现
[img]
[/img]
2.
既然按下按钮这个事件可以被监听,那么输入文本框也可以
如果想要得到输入的内容呢?
显然我们需要将得到的内容,传入监听器中。即
ButtonListener bl = new ButtonListener(jt_code,jpf);
///传入参数,重载ButtonListener原有的构造方法
这时候就出现了错误
1.原来的ButtonListener中并没有这个可以传入参数的构造方法。
2.也没有这两个属性。
此时要修改监听器
private javax.swing.JTextField jt;
private javax.swing.JPasswordField jp ;
/**
* 重载构造方法
*/
public ButtonListener (javax.swing.JTextField jt, javax.swing.JPasswordField jp){
this.jt=jt;
this.jp=jp;
}
还没完,得到了以后,我得验证用户名和密码呀。
把原来的actionPerformed 方法修改成如下
只有用户名为张三,密码为123是才显示登录成功 否则就打印用户名或密码错误
/**
* 得到用户名
*/
String code = jt.getText();
/**
* 得到密码
*/
char c[] = jp.getPassword();
/**
* 将字符型数组转换分成字符串
*/
String pw = new String(c);
/**
* 进行验证
*/
if(code.equals("张三")&&pw.equals("123"))
System.out.println("登录成功");
else
System.out.println("用户名或密码错误");
3.有的监听中不止一种抽象方法
比如WindowListener
package jiantingqi;
import java.awt.event.WindowEvent;
public class EventHandle implements java.awt.event.WindowListener {
public void windowActivated(WindowEvent e){
System.out.println("窗口被选中啦!!");
}
public void windowClosed(WindowEvent e){
System.out.println("窗口被!关闭啦!!");
}
public void windowClosing(WindowEvent e){
System.out.println("窗口关闭啦!!");
}
public void windowDeactivated(WindowEvent e){
System.out.println("窗口取消选中啦!!");
}
public void windowIconified(WindowEvent e){
System.out.println("窗口从正常状态最小化!!");
}
public void windowDeiconified(WindowEvent e){
System.out.println("窗口从最小化恢复成正常状态!!");
}
public void windowOpened(WindowEvent e){
System.out.println("窗口打开!!");
}
}
由于接口的继承需要重写其中所有的抽象方法,有些麻烦,那么可以使用到适配器。
那就是另外的问题了。 [/color]
- 大小: 184.7 KB
- 大小: 39.6 KB
分享到:
相关推荐
标题中的“java入门经典(完整版高清晰带目录书签)”表明这是一本针对Java初学者的入门教材。它很有可能包含Java编程语言的基础知识、语法介绍、程序设计原理以及一些简单实用的案例。书中的“完整版”意味着内容...
《Java入门到精通》是一本面向Java初学者的权威指南,旨在帮助读者快速掌握Java编程语言的基础知识并逐步深入到高级技术。这本书涵盖了从安装Java开发环境,理解基本语法,到构建复杂应用程序的全过程,是学习Java...
本资源“Java入门到精通完整教程+源码.zip”提供了一个全面的学习路径,帮助初学者逐步掌握Java编程技能并进阶至精通。下面将详细解析这个压缩包中的学习内容。 首先,"Java1908-master"可能指的是2019年8月的一个...
资源名称:“Java入门123”系列教学视频(23集)资源目录:【】Java入门123教学视频-总结视频【】Java入门123教学视频01-04集【】Java入门123教学视频05-08集【】Java入门123教学视频09-12集【】Java入门123教学视频...
资源名称:Java入门1·2·3——一个老鸟的Java学习心得内容简介:本书是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。本书充分考虑了初学Java语言的种种困难...
《Java入门1·2·3:一个老鸟的Java学习心得》是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。《Java入门1·2·3:一个老鸟的Java学习心得》充分考虑了初学Java...
这份"Java入门学习笔记"涵盖了imooc网站上Java入门课程的三个赛季的内容,旨在为初学者提供一个全面的学习资源。 笔记的第一部分是"Java入门第一季学习笔记",它可能包括Java的基础概念和语法。这部分可能会讲解...
Educoder题目:Java入门 - 数组进阶答案解析
Educoder题目:Java入门 - 数组基础答案解析
"Java入门123源码.zip"这个压缩包文件显然是为了帮助初学者掌握Java编程基础知识而设计的。从文件名我们可以推测,它可能包含了一些简单的Java源代码示例,可能是从"1"到"3"逐步递增难度的教学实例,帮助新手逐步...
本书是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。本书充分考虑了初学Java语言的种种困难,讲解时细致入微,抽丝剥茧,层层推进,并采用对比、比喻和类比的...
对于初学者来说,Java入门学习是编程旅程中的重要一步。这份"Java入门学习PPT课件"提供了简单易懂的方式,帮助新手理解Java的基础概念。 1. **Java简介**:Java是由Sun Microsystems(现为Oracle公司)开发的,由...
java入门学习视频 java一些基础性的知识 数组集合 I/o流等等 java入门学习视频 java一些基础性的知识 数组集合 I/o流等等
#Java入门必读书籍,有个人的笔记(少量介意勿下),书籍开篇第一章包括软件下载和环境设置。 #穿插了195个完整示例和350个Java源程序帮助读者理解
【Java入门学习】是编程初学者踏入编程世界的重要一步,特别是对于那些选择Java作为首选语言的人来说。本资源包提供了一份“java入门学习资料ppt”,它通常包含了一系列关于Java基础概念、语法、数据类型、控制结构...
"Java入门实验实例(程序代码加实验报告全)"是一份非常实用的学习资源,旨在帮助初学者快速掌握Java编程基础。这份资料包含了作者在学习Java过程中编写的全部程序和对应的实验报告,对于刚接触Java的人来说,是非常...
java入门java入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zipjava入门阶段相关代码.zip...
60个java入门源代码,涵盖javaSE学习的方方面面,认真学习过后一定受益匪浅。
《Java入门123——一个老鸟的Java学习心得》。作者以独特的视角向Java初学者讲述了如何才能真正理解和掌握Java。本书充分考虑了初学Java的种种困难,讲解细致入微,抽丝剥茧,层层推进,并采用对比、比喻和类比等...
适合JAVA入门开发,为进阶JAVA提供扎实的基础