Java 使用getX()和getY()方法获取面板的位置,而不是框架的位置

Java 使用getX()和getY()方法获取面板的位置,而不是框架的位置,java,Java,我在MouseListener类中使用getX()和getY()方法来获取面板的位置,但它获取的是框架的位置,而框架的位置包括标题栏的顶部和侧面,因此它没有获取我想要的位置。我还有: @Override public Dimension getPreferredSize() { return new Dimension(300, 300); } 方法来覆盖框架,因此当您在图形中绘制时,设置x和y的绘制位置,它会将其设置为面板位置,而不是框架位置,但我不知道如何使它使MouseListe

我在
MouseListener
类中使用
getX()
getY()
方法来获取面板的位置,但它获取的是框架的位置,而框架的位置包括标题栏的顶部和侧面,因此它没有获取我想要的位置。我还有:

@Override
public Dimension getPreferredSize() {
    return new Dimension(300, 300);
}
方法来覆盖框架,因此当您在图形中绘制时,设置x和y的绘制位置,它会将其设置为面板位置,而不是框架位置,但我不知道如何使它使MouseListener类执行相同的操作。请帮忙。谢谢

mouseStener类的代码:

package events;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Events implements ActionListener, MouseListener, MouseMotionListener {

    static Events events = new Events();

    int x;
    int y;

    public void actionPerformed(ActionEvent e) {
    }

    public void mousePressed(MouseEvent e) {
    }

    public void mouseReleased(MouseEvent e) {
    }

    public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {
    }

    public void mouseClicked(MouseEvent e) {
        x = e.getX();
        y = e.getY();

        System.out.println("X:" + x + " " + "Y:" + y);
    }

    public void mouseMoved(MouseEvent e) {
    }

    public void mouseDragged(MouseEvent e) {
    }
}

别客气。我可以直接调用配电盘x和y位置的配电盘名称。不过还是谢谢你

x = P.g.getX();
y = P.g.getY()

可以我显示了密码。如果您有答案,请不要将其编辑为答案,请将其发布在答案表单中。如果您自己找到了答案,可以将其发布为答案并接受吗?@Lemony Andrew几乎相同;)可以我回答了我自己的问题。接受按钮在哪里?