歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java GUI之事件監聽與處理

Java GUI之事件監聽與處理

日期:2017/3/1 10:47:48   编辑:Linux編程

事件監聽和處理的根本技術,是回調。甲方提供接口,乙方實現接口並調用相應方法。

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

Copyright © Linux教程網 All Rights Reserved