歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java添加事件的四種方式

Java添加事件的四種方式

日期:2017/3/1 9:39:27   编辑:Linux編程

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();
}
}

Java 9 的新特性發布 http://www.linuxidc.com/Linux/2014-08/105707.htm

Java編程思想(第4版) 中文清晰PDF完整版 http://www.linuxidc.com/Linux/2014-08/105403.htm

編寫高質量代碼 改善Java程序的151個建議 PDF高清完整版 http://www.linuxidc.com/Linux/2014-06/103388.htm

Java 8簡明教程 http://www.linuxidc.com/Linux/2014-03/98754.htm

Java對象初始化順序的簡單驗證 http://www.linuxidc.com/Linux/2014-02/96220.htm

Java對象值傳遞和對象傳遞的總結 http://www.linuxidc.com/Linux/2012-12/76692.htm

Copyright © Linux教程網 All Rights Reserved