通过鼠标监听
MouseMotionListener
中的
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
x = e.getX();
y = e.getY();
}
方法
来获取鼠标坐标并赋给小球坐标实现小球跟随移动
package day06;
import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyMouseBall {
public static void main(String[] args) {
JFrame frame = new JFrame("MyMouseBall");
frame.setSize(400, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
//
MyMouseBallPanel mmbp = new MyMouseBallPanel();
frame.add(mmbp);
// 给面板对象添加监听
mmbp.addMouseListener(mmbp);
mmbp.addMouseMotionListener(mmbp);
frame.setVisible(true);
}
}
class MyMouseBallPanel extends JPanel implements MouseListener , MouseMotionListener{
int x ;
int y ;
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.BLACK);
g.fillOval(x-15, y-15, 30, 30);
repaint();
}
// 鼠标点击
// MouseEvent 事件对象
public void mouseClicked(MouseEvent e) {
// 获取鼠标点击的位置
int x = e.getX();
int y = e.getY();
System.out.println("x:" + x + ",y:" + y);
}
//获取鼠标移动位置赋给小球坐标
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
x = e.getX();
y = e.getY();
}
// 鼠标进入
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
// 鼠标退出
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
// 鼠标按下
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
// 鼠标释放
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
// public boolean mouseMove(Event evt, int i, int j) {
// // TODO Auto-generated method stub
// return super.mouseMove(evt, i, j);
// }
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
}