java中的事件处理札记(一)
今天学习了一些java中事件处理的一些方法,由于这点在java中挺重要的。因此在学习后写个札记,让自己能更好的回忆以便加深掌握。
什么是事件处理机制:就是java中为了实现某种监听功能,比如说我们点击按钮或者点击鼠标等等,我们就必须引入事件处理机制。
java中的事件处理总共分为以下四种情况:1.组件 2.键盘 3.鼠标 4.窗口。
1.组件在事件处理机制中的使用方法
在java的GUI中,我们学习到组件的添加和使用。但是仅仅只有GUI是无法完成事件处理的。而对于GUI中的组件来说,如果我们要对某种事件进行监听的话,就需要实现ActionListener这个接口,在这个接口中我们必须对其中的抽象方法进行重写,也即actionPerformed方法进行重写,在方法的重写中我们加入可以对某种事件作出的反应,也即作出事件的处理。
e.g:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;//这是java中如果使用GUI和事件处理机制,必须导入的三个包
public class A8_2 extends JFrame implements ActionListener{//在这里实现接口ActionListener和继承JFrame类
JPanel myPanel;
JButton button1,button2;
public static void main(String[] args){
A8_2 example = new A8_2();
}
A8_2(){//重写构造函数
myPanel = new JPanel();
button1 = new JButton("红色");
button2 = new JButton("蓝色");
button1.addActionListener(this);//这个方法里面的参数就是你要进行监听的那个类,在这里我们监听的是当前这个类。同样的,我们也可以监听其他的类。
button1.setActionCommand("1111");//这里面的参数是为了区别按钮的,当存在多个按钮时,就需要这么一个方法来区别事件所发生的按钮。
button2.addActionListener(this);
button2.setActionCommand("2222");
//此外,还可以进行多监听.需要进行监听多少个组件,就添加多少组件。
import javax.swing.*;
import java.awt.event.*;//这是java中如果使用GUI和事件处理机制,必须导入的三个包
public class A8_2 extends JFrame implements ActionListener{//在这里实现接口ActionListener和继承JFrame类
JPanel myPanel;
JButton button1,button2;
public static void main(String[] args){
A8_2 example = new A8_2();
}
A8_2(){//重写构造函数
myPanel = new JPanel();
button1 = new JButton("红色");
button2 = new JButton("蓝色");
button1.addActionListener(this);//这个方法里面的参数就是你要进行监听的那个类,在这里我们监听的是当前这个类。同样的,我们也可以监听其他的类。
button1.setActionCommand("1111");//这里面的参数是为了区别按钮的,当存在多个按钮时,就需要这么一个方法来区别事件所发生的按钮。
button2.addActionListener(this);
button2.setActionCommand("2222");
//此外,还可以进行多监听.需要进行监听多少个组件,就添加多少组件。
public void actionPerformed(ActionEvent e){//我们必须来重写这个方法
if(e.getActionCommand().equals("1111")){//这里就体现出上面为什么我们要区分按钮
myPanel.setBackground(Color.red);
}
if(e.getActionCommand().equals("2222")){
myPanel.setBackground(Color.blue);
}
}
}
if(e.getActionCommand().equals("1111")){//这里就体现出上面为什么我们要区分按钮
myPanel.setBackground(Color.red);
}
if(e.getActionCommand().equals("2222")){
myPanel.setBackground(Color.blue);
}
}
}
在这个程序中,我们会实现一个小功能,也就是通过按键来改变面板的颜色。从上面的代码来看,我们只是使用了组件常见的监听方法,即addActionListener()。