如题,左上角显示鼠标箭头的坐标
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.util.Random;
public class Test{
private Frame f = new Frame("鼠标控制小球");
//画布大小
private final int SIZE=400;
//重写paint()
private MyCanvas area = new MyCanvas();
//记录鼠标坐标
private int x, y;
private BufferedImage image = new BufferedImage(SIZE,SIZE,BufferedImage.TYPE_INT_RGB);
private Graphics g = image.getGraphics();
//小球半径
private final int r=30;
private Random rand = new Random();
private void init(){
area.setPreferredSize(new Dimension(SIZE,SIZE));
//画白色背景
g.setColor(Color.white);
g.fillRect(0, 0, SIZE, SIZE);
//画两条直线
g.setColor(Color.black);
g.drawLine(0,200,SIZE,200);
g.drawLine(200,0,200,SIZE);
area.repaint();
area.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e){
x = e.getX();
y = e.getY();
//画白色背景
g.setColor(Color.white);
g.fillRect(0, 0, SIZE, SIZE);
//画变色小球
g.setColor(new Color(rand.nextInt(255), rand.nextInt(255), rand.nextInt(255)));
g.fillOval(x-r/2, y-r/2, r,r);
//画两条直线
g.setColor(Color.black);
g.drawLine(0,200,SIZE,200);
g.drawLine(200,0,200,SIZE);
//左上角显示鼠标当前坐标
g.setColor(Color.red);
g.setFont(new Font("Times", Font.BOLD, 14));
g.drawString("鼠标箭头的坐标:", 0,20);
g.drawString("X:"+x, 0,40);
g.drawString("Y:"+y, 0,60);
area.repaint();
}
});
//关闭窗口
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.add(area);
f.pack();
f.setVisible(true);
}
private class MyCanvas extends Canvas{
public void paint(Graphics g){
g.drawImage(image, 0, 0, null);
}
}
public static void main(String[] args){
new Test().init();
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。