awt

摘自:http://www.ntu.edu.sg/home/ehchua/programming/java/J4a_GUI.html
主要内容:
      1.ActionListener
      2.WindowEvent
      3.MouseEvent, MouseMotionListener
      4.KeyEvent, KeyListener


1.ActionListener

import java.awt.*;        // Using AWT container and component classes
import java.awt.event.*;  // Using AWT event classes and listener interfaces
 
// An AWT program inherits from the top-level container java.awt.Frame
public class AWTCounter extends Frame implements ActionListener {
   private Label lblCount;    // Declare component Label
   private TextField tfCount; // Declare component TextField
   private Button btnCount;   // Declare component Button
   private int count = 0;     // Counter's value
 
   /** Constructor to setup GUI components and event handling */
   public AWTCounter () {
      setLayout(new FlowLayout());
         // "super" Frame sets its layout to FlowLayout, which arranges the components
         //  from left-to-right, and flow to next row from top-to-bottom.
 
      lblCount = new Label("Counter");  // construct Label
      add(lblCount);                    // "super" Frame adds Label
 
      tfCount = new TextField("0", 10); // construct TextField
      tfCount.setEditable(false);       // set to read-only
      add(tfCount);                     // "super" Frame adds tfCount
 
      btnCount = new Button("Count");   // construct Button
      add(btnCount);                    // "super" Frame adds Button
 
      btnCount.addActionListener(this);
         // Clicking Button source fires ActionEvent
         // btnCount registers this instance as ActionEvent listener
 
      setTitle("AWT Counter");  // "super" Frame sets title
      setSize(250, 100);        // "super" Frame sets initial window size
 
      // System.out.println(this);
      // System.out.println(lblCount);
      // System.out.println(tfCount);
      // System.out.println(btnCount);
 
      setVisible(true);         // "super" Frame shows
 
      // System.out.println(this);
      // System.out.println(lblCount);
      // System.out.println(tfCount);
      // System.out.println(btnCount);
   }
 
   /** The entry main() method */
   public static void main(String[] args) {
      // Invoke the constructor to setup the GUI, by allocating an instance
      AWTCounter app = new AWTCounter();
   }
 
   /** ActionEvent handler - Called back upon button-click. */
   @Override
   public void actionPerformed(ActionEvent evt) {
      ++count; // increase the counter value
      // Display the counter value on the TextField tfCount
      tfCount.setText(count + ""); // convert int to String
   }
}


2.WindowEvent

import java.awt.*;        // Using AWT containers and components
import java.awt.event.*;  // Using AWT events and listener interfaces
 
// An AWT GUI program inherits the top-level container java.awt.Frame
public class WindowEventDemo extends Frame
      implements ActionListener, WindowListener {
      // This class acts as listener for ActionEvent and WindowEvent
      // Java supports only single inheritance, where a class can extend
      // one superclass, but can implement multiple interfaces.
 
   private TextField tfCount;
   private Button btnCount;
   private int count = 0;  // Counter's value
 
   /** Constructor to setup the UI components and event handling */
   public WindowEventDemo() {
      setLayout(new FlowLayout()); // "super" Frame sets to FlowLayout
 
      add(new Label("Counter"));   // "super" Frame adds an anonymous Label
 
      tfCount = new TextField("0", 10); // Allocate TextField
      tfCount.setEditable(false);       // read-only
      add(tfCount);                     // "super" Frame adds tfCount
 
      btnCount = new Button("Count");  // Declare and allocate a Button
      add(btnCount);                   // "super" Frame adds btnCount
 
      btnCount.addActionListener(this);
        // btnCount fires ActionEvent to its registered ActionEvent listener
        // btnCount adds "this" object as an ActionEvent listener
 
      addWindowListener(this);
        // "super" Frame fires WindowEvent to its registered WindowEvent listener
        // "super" Frame adds "this" object as a WindowEvent listener
 
      setTitle("WindowEvent Demo"); // "super" Frame sets title
      setSize(250, 100);            // "super" Frame sets initial size
      setVisible(true);             // "super" Frame shows
   }
 
   /** The entry main() method */
   public static void main(String[] args) {
      new WindowEventDemo();  // Let the construct do the job
   }
 
   /** ActionEvent handler */
   @Override
   public void actionPerformed(ActionEvent evt) {
      ++count;
      tfCount.setText(count + "");
   }
 
   /** WindowEvent handlers */
   // Called back upon clicking close-window button
   @Override
   public void windowClosing(WindowEvent e) {
      System.exit(0);  // Terminate the program
   }
 
   // Not Used, but need to provide an empty body
   @Override
   public void windowOpened(WindowEvent e) { }
   @Override
   public void windowClosed(WindowEvent e) { }
   @Override
   public void windowIconified(WindowEvent e) { }
   @Override
   public void windowDeiconified(WindowEvent e) { }
   @Override
   public void windowActivated(WindowEvent e) { }
   @Override
   public void windowDeactivated(WindowEvent e) { }
}

3.MouseEvent, MouseMotionListener

import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
 
// An AWT GUI program inherits from the top-level container java.awt.Frame
public class MouseMotionDemo extends Frame
      implements MouseListener, MouseMotionListener {
      // This class acts as MouseListener and MouseMotionListener
 
   // To display the (x, y) coordinates of the mouse-clicked
   private TextField tfMouseClickX;
   private TextField tfMouseClickY;
   // To display the (x, y) coordinates of the current mouse-pointer position
   private TextField tfMousePositionX;
   private TextField tfMousePositionY;
 
   /** Constructor to setup the GUI */
   public MouseMotionDemo() {
      setLayout(new FlowLayout()); // "this" frame sets to FlowLayout
 
      add(new Label("X-Click: "));
      tfMouseClickX = new TextField(10);
      tfMouseClickX.setEditable(false);
      add(tfMouseClickX);
      add(new Label("Y-Click: "));
      tfMouseClickY = new TextField(10);
      tfMouseClickY.setEditable(false);
      add(tfMouseClickY);
 
      add(new Label("X-Position: "));
      tfMousePositionX = new TextField(10);
      tfMousePositionX.setEditable(false);
      add(tfMousePositionX);
      add(new Label("Y-Position: "));
      tfMousePositionY = new TextField(10);
      tfMousePositionY.setEditable(false);
      add(tfMousePositionY);
 
      addMouseListener(this);
      addMouseMotionListener(this);
        // "super" frame fires MouseEvent to all its registered MouseListener and MouseMotionListener
        // "super" frame adds "this" object as MouseListener and MouseMotionListener
 
      setTitle("MouseMotion Demo"); // "super" Frame sets title
      setSize(400, 120);            // "super" Frame sets initial size
      setVisible(true);             // "super" Frame shows
   }
 
   /** The entry main() method */
   public static void main(String[] args) {
      new MouseMotionDemo();  // Let the constructor do the job
   }
 
   /** MouseListener handlers */
   // Called back when a mouse-button has been clicked
   @Override
   public void mouseClicked(MouseEvent e) {
      tfMouseClickX.setText(e.getX() + "");
      tfMouseClickY.setText(e.getY() + "");
   }
 
   // Not Used, but need to provide an empty body for compilation
   @Override
   public void mousePressed(MouseEvent e) { }
   @Override
   public void mouseReleased(MouseEvent e) { }
   @Override
   public void mouseEntered(MouseEvent e) { }
   @Override
   public void mouseExited(MouseEvent e) { }
 
   /** MouseMotionEvent handlers */
   // Called back when the mouse-pointer has been moved
   @Override
   public void mouseMoved(MouseEvent e) {
      tfMousePositionX.setText(e.getX() + "");
      tfMousePositionY.setText(e.getY() + "");
   }
 
   // Not Used, but need to provide an empty body for compilation
   @Override
   public void mouseDragged(MouseEvent e) { }
}

4.KeyEvent, KeyListener

import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
 
// An AWT GUI program inherits from the top-level container java.awt.Frame
public class KeyEventDemo extends Frame implements KeyListener {
      // This class acts as KeyEvent Listener
 
   private TextField tfInput;  // single-line TextField to receive tfInput key
   private TextArea taDisplay; // multi-line TextArea to taDisplay result
 
   /** Constructor to setup the GUI */
   public KeyEventDemo() {
      setLayout(new FlowLayout()); // "super" frame sets to FlowLayout
 
      add(new Label("Enter Text: "));
      tfInput = new TextField(10);
      add(tfInput);
      taDisplay = new TextArea(5, 40); // 5 rows, 40 columns
      add(taDisplay);
 
      tfInput.addKeyListener(this);
         // tfInput TextField fires KeyEvent to its registered KeyListeners
         // tfInput adds "this" object as a KeyEvent listener
 
      setTitle("KeyEvent Demo"); // "super" Frame sets title
      setSize(400, 200);         // "super" Frame sets initial size
      setVisible(true);          // "super" Frame shows
   }
 
   /** The entry main() method */
   public static void main(String[] args) {
      new KeyEventDemo();  // Let the constructor do the job
   }
 
   /** KeyEvent handlers */
   // Called back when a key has been typed (pressed and released)
   @Override
   public void keyTyped(KeyEvent e) {
      taDisplay.append("You have typed " + e.getKeyChar() + "\n");
   }
 
   // Not Used, but need to provide an empty body for compilation
   @Override
   public void keyPressed(KeyEvent e) { }
   @Override
   public void keyReleased(KeyEvent e) { }
}

 

posted @ 2016-02-20 00:04  SuperTao1024  阅读(302)  评论(0编辑  收藏  举报