事件的方法。
第二步:创建主类X10_3_4,在该类的main()方法中创建MouseKeyFrame类对象。 【参考程序】
import java.awt.*;
import java.awt.event.*; public class X10_3_4 { // 定义主类 public static void main(String[] args) { new MouseKeyFrame(); } }
class MouseKeyFrame extends Frame { // 定义创建窗口、处理鼠标和键盘事件的类 Panel pn;
TextField tf1, tf2; KeyHandler kh; MouseKeyFrame(){ pn = new Panel(new BorderLayout() ); tf1 = new TextField(30); tf2 = new TextField(30); kh = new KeyHandler(new Dimension(200,80), Color.yellow ); pn.add(kh, BorderLayout.CENTER); pn.add(tf2, BorderLayout.SOUTH); this.add(tf1, BorderLayout.NORTH); this.add(pn, BorderLayout.SOUTH); this.addMouseListener(new MouseHandler() ); this.addMouseMotionListener(new MouseHandler() ); this.addWindowListener(new WindowAdapter(){ // 关闭窗口事件处理 public void windowClosing(WindowEvent e){ System.exit(0); } } ); this.setSize(400, 300); this.setVisible(true); }
class MouseHandler implements MouseListener, MouseMotionListener{
// 处理鼠标事件内部类
// 以下5个方法是实现MouseListener接口中的方法
public void mouseEntered(MouseEvent e){ tf1.setText(\ } public void mouseExited(MouseEvent e){ tf1.setText(\ } public void mousePressed(MouseEvent e){ tf1.setText(\
} public void mouseReleased(MouseEvent e){ tf1.setText(\ } public void mouseClicked(MouseEvent e){ tf1.setText(\ } // 以下2个方法是实现MouseMotionListener接口中的方法 public void mouseMoved(MouseEvent e){法 tf1.setText(\ } public void mouseDragged(MouseEvent e){ tf1.setText(\ } }
class KeyHandler extends Canvas implements KeyListener{// 处理键盘事件内部类 StringBuffer sb ; KeyHandler(Dimension d, Color c){ sb = new StringBuffer(); this.setSize(d); this.setBackground(c); this.addKeyListener(this); } public void keyPressed(KeyEvent e){ } public void keyReleased(KeyEvent e){ } public void keyTyped(KeyEvent e){ tf2.setText(\ repaint(); } public void paint(Graphics g){ g.drawString(\ } } }
【运行结果】当鼠标进入窗口(上面白色区域)时,将在上面的文本框中显示鼠标动作,当用鼠标点击画布(下面有色区域)使画布获得焦点后,即可以用键盘输入数据,输入的数据在画布和下面的文本框中同时显示。如下图: