java swing事件机制_java SWing事件调用的两种机制
/**
* java swing中事件調用的兩種機制:
* (一)響應機制
* (二)回調機制
*/
package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class SimpleListener implements ActionListener {
/*
* 利用該類來監聽事件源產生的事件,利用響應機制
*/
public void actionPerformed(ActionEvent e) {
String buttonName = e.getActionCommand();
if (buttonName.equals("按鈕1"))
System.out.println("按鈕1 被點擊");
}
}
/*
* 利用該類來處理事件源產生的事件,利用回調機制
*/
class ButtonAction extends AbstractAction {
public void actionPerformed(ActionEvent e) {
System.out.println("按鈕2 被點擊");
}
}
public class ActionTest {
private static JFrame frame; // 定義為靜態變量以便main使用
private static JPanel myPanel; // 該面板用來放置按鈕組件
private JButton button1; // 這里定義按鈕組件
private JButton button2;
public ActionTest() { // 構造器, 建立圖形界面
// 新建面板
myPanel = new JPanel();
// 新建按鈕
button1 = new JButton("按鈕1"); // 新建按鈕1
// 建立一個actionlistener讓按鈕1注冊,以便響應事件
SimpleListener ourListener = new SimpleListener();
button1.addActionListener(ourListener);
button2 = new JButton();// 新建按鈕2
// 建立一個ButtonAction注入按鈕2,以便響應事件
ButtonAction action = new ButtonAction();
button2.setAction(action);
button2.setText("按鈕2");
myPanel.add(button1); // 添加按鈕到面板
myPanel.add(button2);
}
public static void main(String s[]) {
ActionTest gui = new ActionTest(); // 新建Simple1組件
frame = new JFrame("Simple1"); // 新建JFrame
// 處理關閉事件的通常方法
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.getContentPane().add(myPanel);
frame.pack();
frame.setVisible(true);
}
} 來源:http://hi.baidu.com/dobodo/item/f6ed3173d226c547ef1e538d
總結
以上是生活随笔為你收集整理的java swing事件机制_java SWing事件调用的两种机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java包引入顺序_多个相同jar存在时
- 下一篇: java 手动事务回滚_JAVA设置手动