JButton)。ActionListener)處理事件的物件。actionPerformed)。生活類比:被花瓶砸暈的人 = 事件源,大腦神經 = 偵聽器,暈倒 = 事件處理。
JButton 生成 ActionEvent 封裝事件資訊。actionPerformed(ActionEvent e)。btnPress_Click)。private void initialize() {
frame = new JFrame();
btnPress = new JButton("Press");
btnPress.setName("Press");
// 關鍵:向事件源植入偵聽器
btnPress.addActionListener(new ButtonEventHandler(this));
frame.getContentPane().add(btnPress);
}
class ButtonEventHandler implements ActionListener {
private EventDemo form;
public ButtonEventHandler(EventDemo form) { this.form = form; }
public void actionPerformed(ActionEvent e) {
// 委派給視窗類處理
this.form.btnPress_Click(e);
}
}
private void btnPress_Click(ActionEvent e) {
String message = "你點擊的按鈕名叫:" + ((JButton)e.getSource()).getName();
this.txtMessage.setText(message);
}
事件源_事件名(如 btnPress_Click),便於維護。初學者常只會拖拉拽生成界面,**不理解偵聽器註冊、事件對象傳遞、委派轉發的內部機制**。掌握「源-聽-處」三角關係與代碼結構,才能從「會用工具」進階為「懂原理的開發者」。