JavaGUI事件監(jiān)聽機(jī)制超詳細(xì)講解
1.一個(gè)事件模型中有上對(duì)象:事件源,事件以及監(jiān)聽程序
2.事件監(jiān)聽機(jī)制:
- 事件源 事件發(fā)生的地方
- 事件 要發(fā)生的事情
- 事件處理 針對(duì)發(fā)生的事情做出的處理方案
- 事件監(jiān)聽 把事件源和事件關(guān)聯(lián)起來

使用步驟:
- 新建一個(gè)組件(如 JButton)
- 將該組件添加到相應(yīng)的面板(如 JFrame)
- 注冊(cè)監(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java序列化和反序列化_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
把對(duì)象轉(zhuǎn)換為字節(jié)序列的過程稱為對(duì)象的序列化,把字節(jié)序列恢復(fù)為對(duì)象的過程稱為對(duì)象的反序列化。接下來通過本文給大家介紹Java序列化和反序列化及主要的兩種用途,感興趣的的友參考下吧2017-05-05
通過使用Byte?Buddy便捷創(chuàng)建Java?Agent
這篇文章主要為大家介紹了如何通過使用Byte?Buddy便捷創(chuàng)建Java?Agent的使用說明,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
Nacos服務(wù)發(fā)現(xiàn)并發(fā)啟動(dòng)scheduleUpdate定時(shí)任務(wù)的流程分析
這篇文章主要介紹了Nacos服務(wù)發(fā)現(xiàn)并發(fā)啟動(dòng)scheduleUpdate定時(shí)任務(wù),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
利用Java設(shè)置Word文本框中的文字旋轉(zhuǎn)方向的實(shí)現(xiàn)方法
Word文檔中可添加文本框,并設(shè)置文本框?yàn)闄M向文本排列或是縱向文本排列,或者設(shè)置文本框中的文字旋轉(zhuǎn)方向等.通過Java程序代碼,也可以實(shí)現(xiàn)以上文本框的操作.下面以Java代碼示例展示具體的實(shí)現(xiàn)步驟.另外,可參考C#及VB.NET代碼的實(shí)現(xiàn)方法,需要的朋友可以參考下2021-06-06
spring boot udp或者tcp接收數(shù)據(jù)的實(shí)例詳解
這篇文章主要介紹了spring boot udp或者tcp接收數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12

