e.getX ();不能准确地工作



所以我遇到了一个问题,当我读取鼠标位置并试图操纵它时,一切都变成了地狱!

这是这个灾难的代码。

public class LoadScreen implements MouseListener{
    int x,y;
    public void begin(Graphics g, JPanel def) {
        def.addMouseListener(this);
        Font font = new Font("Serif", Font.PLAIN, 50);
        g.setFont(font);
        g.drawString("Welcome to FaivaCodex's Live Interaction Game Shell", 30, 200);
        Font font2=new Font("Triplex",Font.PLAIN, 17);
        g.setFont(font2);
        g.drawString("Enjoy making your game, for any more gameshells you would like to be availible send an email to flaivaflaves@gmail.com ",  30, 230);
        g.fillRect(x-5,y-5,x+10,y+10);
    }
    @Override
    public void mouseEntered(MouseEvent arg0) {
        x=arg0.getX();
        y=arg0.getY();
    }
    @Override
    public void mouseClicked(MouseEvent arg0) {
    }
    @Override
    public void mouseExited(MouseEvent arg0) {
    }
    @Override
    public void mousePressed(MouseEvent arg0) {
    }
    @Override
    public void mouseReleased(MouseEvent arg0) {
    }
}

有它产生的图像,但我还不能发布图像。我想要的是鼠标所在的10*10像素框,但我可以告诉你的是....这个矩形太大了

fillRect(...)的参数是坐标x, y以及大小widthheight,这意味着如果x = 100y = 100,您的代码将产生一个从x 100, y 100开始的110x110矩形。

如果你想创建一个从鼠标指针开始的10x10矩形,使用:

g.fillRect(x,y,10,10);
g.fillRect(x-5,y-5,x+10,y+10);

fillRect接受x,y,宽度和高度作为参数,所以你需要让它

g.fillRect(x-5,y-5,10,10);

最新更新