import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MoveMessageDemo extends JFrame { public MoveMessageDemo() { MoveMessagePanelNew p = new MoveMessagePanelNew("Welcome to Java"); getContentPane().setLayout(new BorderLayout()); getContentPane().add(p); } /** Main method */ public static void main(String[] args) { MoveMessageDemo frame = new MoveMessageDemo(); frame.setTitle("MoveMessageDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); frame.setVisible(true); } } // MoveMessagePanel draws a message class MoveMessagePanel implements MouseMotionListener { public void mouseMoved(MouseEvent e) { } /** Handle mouse dragged event */ public void mouseDragged(MouseEvent e) { //鼠标按键在组件上按下并拖动时调用。 // Get the new location and repaint the screen System.out.println(e.getX()); System.out.println(e.getY()); } } // MoveMessagePanelNew draws a message class MoveMessagePanelNew extends JPanel implements MouseMotionListener { private String message = "Welcome to Java"; private int x = 20; private int y = 20; public MoveMessagePanelNew(String s) { message = s; this.addMouseMotionListener(this); } public void mouseMoved(MouseEvent e) { } public void mouseDragged(MouseEvent e) { // Get the new location and repaint the screen x = e.getX(); y = e.getY(); repaint(); } protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawString(message, x, y); } }