按钮事件处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按钮事件处理相关的知识,希望对你有一定的参考价值。
在进行gui编程时,我们最常使用的控件时按钮,在java中JButton类代表了按钮。它的类层次结构图是:
java.lang.Object |_ java.awt.Component |_java.awt.Container |_javax.swing.JComponent |_javax.swing.AbstractButton |_javax.swing.JButton
我们使用按钮的目的不是为了好看,而是点击它,产生某些我们想要的结果,即事件处理。在c语言中,我们需要不断检查事件队列,然后依次处理。但是这种方式编写的程序可读性很差,在java中采用了事件监听器,它对每个需要控制的控件,都绑定一个监听器,绑定的监听器负责进行处理相关事宜。流程就是控件产生了事件,然后传递给了监听器,监听器接收到事件,然后进行处理。
java将控件产生的事件的所有相关信息都封装到一个事件对象,这个事件对象都派生于java.util.EventObject,按钮对应的事件对象是ActionEvent。每个监听器都必须实现一个叫ActionListener的接口,实现其中的方法actionPerformed(ActionEvent e)。
public class test() { public static void main(String[] args) { ... ... javax.swing.JButton button = new javax.swing.JButton(); ... ... TestAction action = new TestAction(); button.addActionListener(action); } class TestAction implements java.awt.event.ActionListener{ public void actionPerformed(java.awt.event.ActionEvent e) { Object obj = e.getSource(); if(obj == button) test(e); } } void test(java.awt.event.ActionEvent event) { ... ... } }
一个监听器可以同时被多个控件使用,除了上文的判断某个控件的方法之外,还可以使用setActionCommand(String name)方法将这个按钮产生的事件命名,然后在actionPerformed方法中使用e.getActionCommand().equals()方法判别。
以上是关于按钮事件处理的主要内容,如果未能解决你的问题,请参考以下文章
响应Activity中的ViewPager2 Fragments事件