Java新增事件監聽的四種方法程式碼例項

NO IMAGE

Java新增事件的幾種方式(轉載了codebrother的文章,做了稍微的改動):


/**
* Java事件監聽處理——自身類實現ActionListener介面,作為事件監聽器
*
* @author codebrother
*/
class EventListener1 extends JFrame implements ActionListener {
private JButton btBlue, btDialog;
public EventListener1() {
setTitle("Java GUI 事件監聽處理");
setBounds(100, 100, 500, 350);
setLayout(new FlowLayout());
btBlue = new JButton("藍色");   
btDialog = new JButton("彈窗");
// 將按鈕新增事件監聽器
btBlue.addActionListener(this);
btDialog.addActionListener(this);
add(btBlue);
add(btDialog);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// ***************************事件處理***************************
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btBlue) {
Container c = getContentPane();
c.setBackground(Color.BLUE);
}
else if (e.getSource() == btDialog) {
JDialog dialog = new JDialog();
dialog.setBounds(300, 200, 400, 300);
dialog.setVisible(true);
}
}
}
/**
* Java事件監聽處理——內部類處理
*
* @author codebrother
*/
class EventListener3 extends JFrame {
private JButton btBlue, btDialog;
// 構造方法
public EventListener3() {
setTitle("Java GUI 事件監聽處理");
setBounds(100, 100, 500, 350);
setLayout(new FlowLayout());
btBlue = new JButton("藍色");
btDialog = new JButton("彈窗");
// 新增事件監聽器物件(物件導向思想)
btBlue.addActionListener(new ColorEventListener());
btDialog.addActionListener(new DialogEventListener());
add(btBlue);
add(btDialog);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// 內部類ColorEventListener,實現ActionListener介面
class ColorEventListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Container c = getContentPane();
c.setBackground(Color.BLUE);
}
}
// 內部類DialogEventListener,實現ActionListener介面
class DialogEventListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog();
dialog.setBounds(300, 200, 400, 300);
dialog.setVisible(true);
}
}
}
/**
* Java事件監聽處理——匿名內部類處理
*
* @author codebrother
*/
class EventListener2 extends JFrame {
private JButton btBlue, btDialog;
public EventListener2() {
setTitle("Java GUI 事件監聽處理");
setBounds(100, 100, 500, 350);
setLayout(new FlowLayout());
btBlue = new JButton("藍色");
btDialog = new JButton("彈窗");
// 新增事件監聽器(此處即為匿名類)
btBlue.addActionListener(new ActionListener() {
// 事件處理
@Override
public void actionPerformed(ActionEvent e) {
Container c = getContentPane();
c.setBackground(Color.BLUE);
}
});
// 並新增事件監聽器 
btDialog.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog();
dialog.setBounds(300, 200, 400, 300);
dialog.setVisible(true);
}
});
add(btBlue);
add(btDialog);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
/**
* Java事件監聽處理——外部類處理
*
* @author codebrother
*/
class EventListener4 extends JFrame {
private JButton btBlue, btDialog;
public EventListener4() {
setTitle("Java GUI 事件監聽處理");
setBounds(100, 100, 500, 350);
setLayout(new FlowLayout());
btBlue = new JButton("藍色");
btDialog = new JButton("彈窗");
// 將按鈕新增事件監聽器
btBlue.addActionListener(new ColorEventListener(this));
btDialog.addActionListener(new DialogEventListener());
add(btBlue);
add(btDialog);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// 外部類ColorEventListener,實現ActionListener介面
class ColorEventListener implements ActionListener {
private EventListener4 el;
ColorEventListener(EventListener4 el) {
this.el = el;
}
@Override
public void actionPerformed(ActionEvent e) {
Container c = el.getContentPane();
c.setBackground(Color.BLUE);
}
}
// 外部類DialogEventListener,實現ActionListener介面
class DialogEventListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog();
dialog.setBounds(300, 200, 400, 300);
dialog.setVisible(true);
}
}
public class ActionListenerTest
{
public static void main(String args[])
{
new EventListener2();
}
}

您可能感興趣的文章:

JavaWeb實現檔案上傳下載功能例項解析Java讀取Excel檔案內容的簡單例項java堆疊類使用例項(java中stack的使用方法)java IO流檔案的讀寫具體例項JAVA得到陣列中最大值和最小值的簡單例項JavaWeb實現使用者登入註冊功能例項程式碼(基於Servlet JSP JavaBean模式)Java實現MD5加密及解密的程式碼例項分享Java Swing中的文字框(JTextField)與文字區(JTextArea)使用例項Java生成CSV檔案例項詳解5個JAVA入門必看的經典例項