JavaGUI事件監(jiān)聽機(jī)制超詳細(xì)講解
更新時(shí)間:2023年03月03日 10:32:32 作者:頭禿小程
Java事件監(jiān)聽器是由事件類和監(jiān)聽接口組成,自定義一個(gè)事件前,必須提供一個(gè)事件的監(jiān)聽接口以及一個(gè)事件類。JAVA中監(jiān)聽接口是繼承java.util.EventListener的類,事件類繼承java.util.EventObject的類
1.一個(gè)事件模型中有上對象:事件源,事件以及監(jiān)聽程序
2.事件監(jiān)聽機(jī)制:
- 事件源 事件發(fā)生的地方
- 事件 要發(fā)生的事情
- 事件處理 針對發(fā)生的事情做出的處理方案
- 事件監(jiān)聽 把事件源和事件關(guān)聯(lián)起來

使用步驟:
- 新建一個(gè)組件(如 JButton)
- 將該組件添加到相應(yīng)的面板(如 JFrame)
- 注冊監(jiān)聽器以監(jiān)聽事件源產(chǎn)生的事件(如通過ActionListener來響應(yīng)用戶點(diǎn)擊按鈕)
- 定義處理事件的方法(如在ActionListener中的actionPerformed中定義相應(yīng)方法)
示例1:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
public class AddActionListener {
public static void main(String[] args) {
JFrame jf = new JFrame("AddActionListener");
jf.setLayout(new FlowLayout(FlowLayout.LEFT));
jf.setBounds(400, 300, 400, 300);
JTextArea area=new JTextArea(20,10);
area.setLineWrap(true);
JButton jb=new JButton("禿頭");
jb.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
area.setText("不要熬夜!");
}
});
jf.add(area);
jf.add(jb);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
示例2:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
public class AddActionListener {
public static void main(String[] args) {
JFrame jf = new JFrame("AddActionListener");
jf.setLayout(new FlowLayout(FlowLayout.LEFT));
jf.setBounds(400, 300, 400, 300);
JTextArea area=new JTextArea(20,10);
area.setLineWrap(true);
JButton jb=new JButton("禿頭");
jb.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
area.append("不要熬夜!");
}
});
jf.add(area);
jf.add(jb);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
tips:ActionEvent是一個(gè)類,e是那個(gè)類的一個(gè)實(shí)例。你可以換e無論你喜歡什么,例如。event或object都可以
到此這篇關(guān)于JavaGUI事件監(jiān)聽機(jī)制超詳細(xì)講解的文章就介紹到這了,更多相關(guān)JavaGUI事件監(jiān)聽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

