java新手上路(四):接口,事件监听
2017-07-15 17:12
246 查看
首先,接口的定义。举个例子,是人都要吃饭。但是你可以用筷子吃,也可以用叉子吃。人作为父类,吃饭是它的方法。在这里我们没法定义这个方法的方法体(也就是在定义“人” 的时候只能定义一个方法名“吃饭”,但是在这个方法的方法体是空的)。 接下来我们定义中国人和美国人的时候,就需要重写这个方法:中国人用筷子吃饭,美国人用叉子吃饭。
对于以上例子的分析,我们可以发现,三个类:“人”,“中国人”,“美国人”。其中“人”这个类是对其余两个类的进一步抽象。我们把对类的抽象叫做接口。
接口,关键词interface:
接口的属性必须是一个公共的静态常量:public static final,
接口的方法必须是一个公共的抽象方法:public abstract;
需要注意,我们在子类中对接口实现的时候,必须将接口中的全部方法实现。
事件监听:在写好一个界面后,我们都需要对这个界面进行很多的操作,如鼠标点击,输入文本等。我们将这些操作称为事件。而获得这个事件就需要用到监听机制。
每一个操作都是一个事件,而每一个事件都有相对应的监听机制。他们被定义在java.awt.event中;
而所有监听机制在java中都是接口类,我们在用到这些监听机制的时候,需要先用一个类来实现接口,然后才能使用接口中的方法。
下面我们编写一个需要用到事件和监听机制有关的程序:
用户输入账号和密码后点击登录按钮,要对输入的账号和密码进行验证,如果正确则显示画图程序窗体,如果错误显示错误提示界面。
分析这个问题涉及到两个窗体界面:登录界面和画图界面;
其中登陆界面应该包含三个按钮:帐号,密码,登录。两个输入框分别对应帐号和密码。
在得到画图界面的时候,我们需要监听“登录按钮被点击”这个事件,同时获得账号和密码输入框中的文本。
由此我们开始分别定义first类和事件监听firstlistener类
public class first { //主函数 public static void main(String[] args){ first f = new first(); f.initUI(); } public void initUI(){ //实例化窗口界面。。。 javax.swing.JFrame frame = new javax.swing.JFrame(); frame.setTitle("画图板登陆界面"); frame.setSize(200,300); frame.setLocation(500,200); frame.setDefaultCloseOperation(3); // 流式布局 java.awt.FlowLayout fl = new java.awt.FlowLayout(); frame.setLayout(fl); //帐号 javax.swing.JLabel labelName = new javax.swing.JLabel("账号:"); frame.add(labelName); javax.swing.JTextField textName1 = new javax.swing.JTextField(10); frame.add(textName1); //密码 javax.swing.JLabel labelPassword = new javax.swing.JLabel("密码:"); frame.add(labelPassword); javax.swing.JPasswordField textName2 = new javax.swing.JPasswordField(10); frame.add(textName2); //登录 javax.swing.JButton denglu = new javax.swing.JButton("登录"); frame.add(denglu); //注册 javax.swing.JButton zhuce = new javax.swing.JButton("注册"); frame.add(zhuce); frame.setVisible(true); //在用到事件监听的时候需要实例化一个firstlistener的对象 firstlistener fls1 = new firstlistener(); //需要注意的是我们在firstlistener中需要用到frame和两个输入框中的内容,所以在firstlistener需要做一个值传递的工作。 fls1.setpassword(textName2); fls1.setfirst(frame); fls1.settext(textName1); denglu.addActionListener(fls1); } }
下面写监听机制firstlistener类:
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JPasswordField; import javax.swing.JTextField; public class firstlistener implements ActionListener { //对first中frame对象的传递 private JFrame f; public void setfirst(JFrame j) { f = j; } //对first中textName1对象的传递 private JTextField t; public void settext(JTextField t1){ t = t1; } //对first中textName2对象的传递 private JPasswordField p; public void setpassword(JPasswordField p1){ p = p1; } //定义监听函数actionPerformed public void actionPerformed(ActionEvent e) { //若帐号为admin,密码为123.则跳转到画图板界面 if(t.getText().equals("admin")&&p.getText().equals("123")){ javax.swing.JFrame frame1 = new javax.swing.JFrame(); frame1.setTitle("画图板界面"); frame1.setSize(200, 300); frame1.setDefaultCloseOperation(3); frame1.setLocation(20, 30); frame1.setVisible(true); //关闭frame界面即登录界面 f.dispose(); } } }
接口和事件监听的相关知识学习完成。
相关文章推荐
- java监听事件“接口的妙用”
- java事件监听机制中的事件、监听器接口、处理方法、事件源
- Java中的键盘监听事件KeyListener
- Java学习笔记--------Java的事件和事件处理接口
- Spring中的IOC(四):IOC中其他接口的使用及Spring的事件处理机制(监听机制)
- Java中的事件监听
- 再谈java事件监听机制
- JAVA键盘事件监听(1)
- android网络监听事件机制(kernel, c++, java)
- JAVA 事件监听
- java中 所有事件侦听器接口(总结)
- java新手上路(二):奥特曼打怪兽
- java事件监听学习——通过键盘方向键控制小球移动
- Java添加事件监听的四种方法代码实例
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
- 转:java中的事件监听是怎样实现随时监听的
- 再谈java事件监听机制
- java事件监听机制(观察者设计模式的实际运用)
- JAVA 使用Interface 实现自己的事件监听
- 【java】事件监听——通过点击不同的按钮,让面板的背景色发生相应的变化