Java界面接口与监听器的实现
Java监听器的实现
Java接口是什么?
interface : 接口
/*接口源代码
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
package java.awt.event;
import java.util.EventListener;
/**
* The listener interface for receiving action events.
* The class that is interested in processing an action event
* implements this interface, and the object created with that
* class is registered with a component, using the component's
* <code>addActionListener</code> method. When the action event
* occurs, that object's <code>actionPerformed</code> method is
* invoked.
*
* @see ActionEvent
* @see <a href="https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html">How to Write an Action Listener</a>
*
* @author Carl Quinn
* @since 1.1
*/
public interface ActionListener extends EventListener {
/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e);
}
我们发现他和一般的类有所不同,有其固定的格式,比如不用class,用了interface,其次是他没有方法体,直接以;结尾了。
格式
public interface 接口名{ }
方法没有方法体,直接以分号结尾了
public void actionPerformed(ActionEvent e);
界面-监听器模型:
实现目标
点击按钮 可以有一个响应 ,做我们自己想执行的代码 验证密码 跳转界面
监听器:
ActionListener
动作监听-- 监听按钮的点击动作,按钮被点击之后调用一个预设的方法
按钮添加监听器:
btn.addActionListener(类的某一个体);
使用监听器
//创建一个类实现监听器 -- 将接口接在自己写的类上
public class LoginListener implements ActionListener{
// 将监听器中的方法 写在自己的类中 改分号为大括号
public void actionPerformed(ActionEvent e){
// 写按钮被点击之后的 要执行的代码 -- 验证密码 跳转界面
}
}
具体代码过程
package com.jzze1215;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PageListener implements ActionListener{
// 将监听器中的方法 写在自己的类中 改分号为大括号
public void actionPerformed(ActionEvent e){
// 写按钮被点击之后的 要执行的代码 -- 验证密码 跳转界面
System.out.println("点击成功 ");
//设置新的跳转页面
javax.swing.JFrame jf2=new javax.swing.JFrame();
javax.swing.JButton btn3=new javax.swing.JButton("Welcome to our next page");//新的按钮
javax.swing.JCheckBox moreselect3=new javax.swing.JCheckBox("Do not show it next time");//新的复选框
java.awt.FlowLayout fl=new java.awt.FlowLayout();//流式布局
javax.swing.ImageIcon picture2=new javax.swing.ImageIcon("C:\\Users\\joanna\\Desktop\\平面设计作品\\夜猫.png");
javax.swing.JLabel picturejla2=new javax.swing.JLabel(picture2);//添加图片
//public void function(){
jf2.setTitle("Just a moment");
jf2.setSize(600,600);//宽高 单位: 像素
//jf2.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);//点击关闭时退出进程
jf2.setLayout(fl);// 设置流式布局
jf2.add(btn3);
Contactus contactus=new Contactus();
btn3.addActionListener(contactus);
jf2.add(moreselect3);
jf2.add(picturejla2);
//可视化要放在组件加载之后
jf2.setVisible(true);
//}
}
}
代码效果
关于作者
本人为大一新生,这是我学术不精的时候照葫芦画瓢摸索出来的,那个logo也是我自己设计的,还望各位大佬多多包涵,这是学习Java的第三天做出来的效果,也希望各位有能力的人多多提点我呀,本人QQ讨论群群号:906776338,欢迎各位加群讨论,互相帮助,共同进步呢~~
喜欢的也可以关注我呀~