JavaGUI事件監(jiān)聽機制超詳細講解
更新時間:2023年03月03日 10:32:32 作者:頭禿小程
Java事件監(jiān)聽器是由事件類和監(jiān)聽接口組成,自定義一個事件前,必須提供一個事件的監(jiān)聽接口以及一個事件類。JAVA中監(jiān)聽接口是繼承java.util.EventListener的類,事件類繼承java.util.EventObject的類
1.一個事件模型中有上對象:事件源,事件以及監(jiān)聽程序
2.事件監(jiān)聽機制:
- 事件源 事件發(fā)生的地方
- 事件 要發(fā)生的事情
- 事件處理 針對發(fā)生的事情做出的處理方案
- 事件監(jiān)聽 把事件源和事件關(guān)聯(lián)起來
使用步驟:
- 新建一個組件(如 JButton)
- 將該組件添加到相應(yīng)的面板(如 JFrame)
- 注冊監(jiān)聽器以監(jiān)聽事件源產(chǎn)生的事件(如通過ActionListener來響應(yīng)用戶點擊按鈕)
- 定義處理事件的方法(如在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
是一個類,e
是那個類的一個實例。你可以換e
無論你喜歡什么,例如。event
或object都可以
到此這篇關(guān)于JavaGUI事件監(jiān)聽機制超詳細講解的文章就介紹到這了,更多相關(guān)JavaGUI事件監(jiān)聽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!