通過鼠標監聽
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
}
}