標籤:
/* 時間:2015年3月21日09:53:44 程式目的:理解內部類的作用和滑鼠事件的處理 源檔案的名稱:TestInner.java 要點: 1, 內部類的性質和用法 2, 將內部類定義為普通內部類的好處-----內部類可以直接存取外層類的屬性和方法 3, 可以更清楚的組織邏輯,防止不應該被其他類訪問的類進行訪問 何時使用: 該類不允許或不需要其他類進行訪問。 滑鼠事件 滑鼠事件的兩個監聽器介面為MouseListener, MouseMotionListener 1, MouseListener介面有五個方法 分別處理的是按下,釋放,單擊,進入或者離開的狀態 2, MouseMotion介面有兩個方法 分別處理的是滑鼠按鍵在組件上按下並拖動 和滑鼠游標進入組件但是無按鍵
*/import java.awt.*;import java.awt.event.*;
public class TestInner { Frame f = new Frame("自我裝載類"); TextField tf = new TextField(30); public TestInner() { f.add(new Label("請按下滑鼠左鍵並拖動"), BorderLayout.NORTH); f.add(tf, "South"); f.setBounds(200, 200, 800, 800); f.addMouseMotionListener(new InnerMouse()); f.addMouseListener(new InnerMouse()); f.setVisible(true); } public static void main(String[] args) { new TestInner(); } private class InnerMouse implements MouseMotionListener, MouseListener { public void mousePressed(MouseEvent e) { String s = ("滑鼠按下" +"," + "位置" + e.getPoint()); tf.setText(s); } public void mouseReleased(MouseEvent e) { tf.setText("滑鼠在組件釋放了" + e.getPoint()); } public void mouseEntered(MouseEvent e) { tf.setText("滑鼠進入表單組件" + e.getPoint()); } public void mouseExited(MouseEvent e) { tf.setText("滑鼠移出表單組件了"); } public void mouseClicked(MouseEvent e) { tf.setText("滑鼠在組件上單擊(按下並釋放),位置" + e.getPoint()); } public void mouseDragged(MouseEvent e) { tf.setText("滑鼠在組件上按下並拖動時調用了" + e.getPoint()); }
public void mouseMoved(MouseEvent e) { tf.setText("滑鼠游標移動到組件上但無按鍵時調用了" + e.getPoint()); }
}}
java語言gui編程之內部類和滑鼠事件經典1