我自
大家先看看簡單的應用程序截圖
截圖如圖一
圖一 初始界面截圖
圖二 藍色按鈕事件處理
圖三 彈窗按鈕事件處理
在此列舉四種方法
自身類實現ActionListener接口
通過匿名類處理
通過內部類處理
通過外部類處理
下面依次介紹
第一種
這種方法是最基本的
import java
import java
import java
import java
import java
import javax
import javax
import javax
public class EventListener
private JButton btBlue
/**
* Java事件監聽處理——自身類實現ActionListener接口
*
* @author codebrother
*/
// 構造方法
public EventListener
// 設置標題欄內容
setTitle(
// 設置初始化窗口位置
setBounds(
// 設置窗口布局
setLayout(new FlowLayout());
// 創建按鈕對象
btBlue = new JButton(
// 將按鈕添加事件監聽器
btBlue
// 創建按鈕對象
btDialog = new JButton(
// 將按鈕添加事件監聽器
btDialog
// 把按鈕容器添加到JFrame容器上
add(btBlue);
add(btDialog);
// 設置窗口可視化
setVisible(true);
// 設置窗口關閉
setDefaultCloseOperation(JFrame
}
// ***************************事件處理***************************
@Override
public void actionPerformed(ActionEvent e) {
// 判斷最初發生Event事件的對象
if (e
// 獲得容器
Container c = getContentPane();
// 設置容器背景顏色
c
}
else if (e
// 創建JDialog窗口對象
JDialog dialog = new JDialog();
dialog
dialog
}
}
// ***************************主方法***************************
public static void main(String[] args) {
new EventListener
}
}
第二種
這是比較好的一種方法
import java
import java
import java
import java
import java
import javax
import javax
import javax
public class EventListener
private JButton btBlue
/**
* Java事件監聽處理——匿名類處理
*
* @author codebrother
*/
// 構造方法
public EventListener
// 設置標題欄內容
setTitle(
// 設置初始化窗口位置
setBounds(
// 設置窗口布局
setLayout(new FlowLayout());
// 創建按鈕對象
btBlue = new JButton(
// 添加事件監聽器(此處即為匿名類)
btBlue
// 事件處理
@Override
public void actionPerformed(ActionEvent e) {
// 獲得容器
Container c = getContentPane();
c
}
});
// 創建按鈕對象
btDialog = new JButton(
btDialog
// 事件處理
@Override
public void actionPerformed(ActionEvent e) {
// 創建JDialog窗口對象
JDialog dialog = new JDialog();
dialog
dialog
}
});
// 把按鈕容器添加到JFrame容器上
add(btBlue);
add(btDialog);
// 設置窗口可視化
setVisible(true);
// 設置窗口關閉
setDefaultCloseOperation(JFrame
}
// ***************************主方法***************************
public static void main(String[] args) {
new EventListener
}
}
第三種
該種方法更符合面向對象編程的思想
import java
import java
import java
import java
import java
import javax
import javax
import javax
public class EventListener
private JButton btBlue
/**
* Java事件監聽處理——內部類處理
*
* @author codebrother
*/
// 構造方法
public EventListener
// 設置標題欄內容
setTitle(
// 設置初始化窗口位置
setBounds(
// 設置窗口布局
setLayout(new FlowLayout());
// 創建按鈕對象
btBlue = new JButton(
// 添加事件監聽器對象(面向對象思想)
btBlue
btDialog = new JButton(
btDialog
// 把按鈕容器添加到JFrame容器上
add(btBlue);
add(btDialog);
// 設置窗口可視化
setVisible(true);
// 設置窗口關閉
setDefaultCloseOperation(JFrame
}
// 內部類ColorEventListener
class ColorEventListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Container c = getContentPane();
c
}
}
// 內部類DialogEventListener
class DialogEventListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// 創建JDialog窗口對象
JDialog dialog = new JDialog();
dialog
dialog
}
}
// ***************************主方法***************************
public static void main(String[] args) {
new EventListener
}
}
第四種
這種我個人不常用
import java
import java
import java
import java
import java
import javax
import javax
import javax
public class EventListener
private JButton btBlue
/**
* Java事件監聽處理——外部類處理
*
* @author codebrother
*/
// 構造方法
public EventListener
// 設置標題欄內容
setTitle(
// 設置初始化窗口位置
setBounds(
// 設置窗口布局
setLayout(new FlowLayout());
// 創建按鈕對象
btBlue = new JButton(
// 將按鈕添加事件監聽器
btBlue
// 創建按鈕對象
btDialog = new JButton(
// 將按鈕添加事件監聽器
btDialog
// 把按鈕容器添加到JFrame容器上
add(btBlue);
add(btDialog);
// 設置窗口可視化
setVisible(true);
// 設置窗口關閉
setDefaultCloseOperation(JFrame
}
// ***************************主方法***************************
public static void main(String[] args) {
new EventListener
}
}
// 外部類ColorEventListener
class ColorEventListener implements ActionListener {
private EventListener
ColorEventListener(EventListener
this
}
@Override
public void actionPerformed(ActionEvent e) {
Container c = el
c
}
}
// 外部類DialogEventListener
class DialogEventListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// 創建JDialog窗口對象
JDialog dialog = new JDialog();
dialog
dialog
}
}
你可能注意到為什麼我寫了兩個監聽事件
第一種的監聽處理部分
第二種和第三種比較常用
第三種符合面向對象編程(可以設置內部類只提供自身類使用
第四種是外部類
個人愚見
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26053.html