/* * Copyright (c) 2000 David Flanagan. All rights reserved. * This code is from the book Java Examples in a Nutshell, 2nd Edition. * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied. * You may study, use, and modify it for any non-commercial purpose. * You may distribute it non-commercially as long as you retain this notice. * For a commercial use license, or to purchase the book (recommended), */ package com.davidflanagan.examples.gui; import javax.swing.*; // For JPanel component import java.awt.*; // For Graphics object import java.awt.event.*; // For Event and Listener objects/** * A simple JPanel subclass that uses event listeners to allow the user * to scribble with the mouse. Note that scribbles are not saved or redrawn. **/ public class ScribblePane1 extends JPanel implements MouseListener, MouseMotionListener { protected int last_x, last_y; // Previous mouse coordinates public ScribblePane1() { // This component registers itself as an event listener for // mouse events and mouse motion events. this.addMouseListener(this); this.addMouseMotionListener(this); // Give the component a preferred size setPreferredSize(new Dimension(450,200)); } // A method from the MouseListener interface. Invoked when the // user presses a mouse button. public void mousePressed(MouseEvent e) { last_x = e.getX(); // remember the coordinates of the click last_y = e.getY(); }
// A method from the MouseMotionListener interface. Invoked when the // user drags the mouse with a button pressed. public void mouseDragged(MouseEvent e) { int x = e.getX(); // Get the current mouse position int y = e.getY(); // Draw a line from the saved coordinates to the current position this.getGraphics().drawLine(last_x, last_y, x, y); last_x = x; // Remember the current position last_y = y; }
// The other, unused methods of the MouseListener interface. public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {}
// The other, unused, method of the MouseMotionListener interface. public void mouseMoved(MouseEvent e) {} }
e.getX(),e.getY()就会得到鼠标该点的坐标。
* Copyright (c) 2000 David Flanagan. All rights reserved.
* This code is from the book Java Examples in a Nutshell, 2nd Edition.
* It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
* You may study, use, and modify it for any non-commercial purpose.
* You may distribute it non-commercially as long as you retain this notice.
* For a commercial use license, or to purchase the book (recommended),
*/
package com.davidflanagan.examples.gui;
import javax.swing.*; // For JPanel component
import java.awt.*; // For Graphics object
import java.awt.event.*; // For Event and Listener objects/**
* A simple JPanel subclass that uses event listeners to allow the user
* to scribble with the mouse. Note that scribbles are not saved or redrawn.
**/
public class ScribblePane1 extends JPanel
implements MouseListener, MouseMotionListener {
protected int last_x, last_y; // Previous mouse coordinates public ScribblePane1() {
// This component registers itself as an event listener for
// mouse events and mouse motion events.
this.addMouseListener(this);
this.addMouseMotionListener(this); // Give the component a preferred size
setPreferredSize(new Dimension(450,200));
} // A method from the MouseListener interface. Invoked when the
// user presses a mouse button.
public void mousePressed(MouseEvent e) {
last_x = e.getX(); // remember the coordinates of the click
last_y = e.getY();
}
// A method from the MouseMotionListener interface. Invoked when the
// user drags the mouse with a button pressed.
public void mouseDragged(MouseEvent e) {
int x = e.getX(); // Get the current mouse position
int y = e.getY();
// Draw a line from the saved coordinates to the current position
this.getGraphics().drawLine(last_x, last_y, x, y);
last_x = x; // Remember the current position
last_y = y;
}
// The other, unused methods of the MouseListener interface.
public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
// The other, unused, method of the MouseMotionListener interface.
public void mouseMoved(MouseEvent e) {}
}