Java GUI之事件监听与处理


事件监听和处理的根本技术,是回调。甲方提供接口,乙方实现接口并调用相应方法。

 
  1. package com.sinosuperman.driver;  
  2.   
  3. import java.awt.Dimension;  
  4. import java.awt.FlowLayout;  
  5. import java.awt.Toolkit;  
  6. import java.awt.event.ActionEvent;  
  7. import java.awt.event.ActionListener;  
  8.   
  9. import javax.swing.JButton;  
  10. import javax.swing.JFrame;  
  11. import javax.swing.JOptionPane;  
  12. import javax.swing.JPanel;  
  13.   
  14. public class MainBench {  
  15.     public static void main(String[] args) {  
  16.         JFrame frame = new MyFrame();  
  17.     }  
  18. }  
  19.   
  20. class MyFrame extends JFrame {  
  21.     private static final long serialVersionUID = 1L;  
  22.     Toolkit tk = Toolkit.getDefaultToolkit();  
  23.     Dimension d = tk.getScreenSize();  
  24.     JPanel panel;  
  25.     public MyFrame() {  
  26.         panel = new MyPanel();  
  27.         this.add(panel);  
  28.         this.setSize((int) d.getWidth() / 2, (int) d.getHeight() / 2);  
  29.         this.setLocation((int) (d.getWidth() - this.getWidth()) / 2, (int) (d.getHeight() - this.getHeight()) / 2);  
  30.         this.setResizable(false);  
  31.         this.setVisible(true);  
  32.     }  
  33. }  
  34.   
  35. class MyPanel extends JPanel implements ActionListener {  
  36.     private static final long serialVersionUID = 5263963243638550398L;  
  37.     JButton okBtn;  
  38.     JButton exitBtn;  
  39.     public MyPanel() {  
  40.         this.setLayout(new FlowLayout(FlowLayout.CENTER));  
  41.         okBtn = new JButton("OK");  
  42.         exitBtn = new JButton("Exit");  
  43.         okBtn.addActionListener(this);  
  44.         exitBtn.addActionListener(this);  
  45.         this.add(okBtn);  
  46.         this.add(exitBtn);  
  47.     }  
  48.     public void actionPerformed(ActionEvent e) {  
  49.         Object source = e.getSource();  
  50.         if (source == okBtn) {  
  51.             JOptionPane.showMessageDialog(null"You click the OK Button.");  
  52.         } else {  
  53.             JOptionPane.showMessageDialog(null"You click the Exit Button.");  
  54.             System.exit(0);  
  55.         }  
  56.     }  
  57. }  

相关内容