什么是事件监听?java
例如,点击按钮,弹出一个文本框,点击一个文本,文本被删除;ide
按钮、文本等组件就是事件源布局
事件就是从开始触发事件源到出现效果的一个过程code
如下是一个案例,点击按钮,记录点击的次数和获取失去焦点事件orm
package cn.com.plane; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class EventDemo{ /*author:命运的信徒 * date:2019/1/18 * arm:记录点击鼠标的次数 */ static JLabel jl1=new JLabel(); static JLabel jl=new JLabel(); static int clicks; private static void setPage(){ //1.设置窗体的内容和大小 JFrame jf=new JFrame("获取点击鼠标的次数"); //能够固定窗体的大小,很好 jf.setPreferredSize(new Dimension(300, 300)); //设置布局模式 BorderLayout flo=new BorderLayout(); //第一个部分 //一个不一样的按钮 JPanel jp=new JPanel(flo); jf.add(jp); JButton jb=new JButton("点我,你就有机会获取大奖"); //设置背景色 jb.setBackground(Color.red); //设置前景色 jb.setForeground(Color.white); //设置位置 jp.add(jb,flo.NORTH); //最关键的地方,为这个button设置事件属性 //1.添加监听器 jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //当鼠标点击的时候,就执行+1的操做 jl1.setText("按钮被点击了"+(clicks++)+"次"); } }); jp.add(jl1,flo.SOUTH); //第二个部分 JPanel jpq=new JPanel(); jf.add(jpq,flo.EAST); JTextField jla=new JTextField(); jla.setColumns(30); jpq.add(jla); jla.addFocusListener(new FocusListener() { public void focusLost(FocusEvent e) { //失去焦点的时候 jl.setText("输入结束...."); } public void focusGained(FocusEvent e) { // 获取焦点的时候 jl.setText("正在输入中....."); } }); jpq.add(jl); //2.设置关闭窗口的时候就是关闭程序的时候 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体可见 jf.pack(); jf.setVisible(true); } public static void main(String[] args) { setPage(); } }
效果以下blog
一、点击按钮的时候,下面出现点击的次数事件
textfield文本框失去焦点,提示输入结束...it
二、把鼠标放在文本框里面的时候,io