Java 为什么指针x和y的位置永远不会低于4和23?

Java 为什么指针x和y的位置永远不会低于4和23?,java,swing,mouseevent,Java,Swing,Mouseevent,我有以下代码 import javax.swing.*; import java.awt.event.*; public class MousePos implements MouseMotionListener{ JLabel x = new JLabel(); JLabel y = new JLabel(); public static void main(String[] args) { MousePos mp =new MousePos(

我有以下代码

import javax.swing.*;


import java.awt.event.*;

public class MousePos implements MouseMotionListener{

    JLabel x = new JLabel();
    JLabel y = new JLabel();

    public static void main(String[] args) {
        MousePos mp =new MousePos();
        mp.go();
    }

    public void go() {
        JFrame frame = new JFrame("Mouse Position");

        frame.addMouseMotionListener(this);

        JPanel p =new JPanel();
        p.add(x);
        p.add(y);

        frame.getContentPane().add(p);
        frame.setSize(150,150);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    @Override
    public void mouseDragged(MouseEvent e) {


    }

    @Override
    public void mouseMoved(MouseEvent e) {
        x.setText("X : " + e.getX());
        y.setText("Y : " +e.getY());

    }

}
这将创建一个框架,其中包含两个标签,用于在表单上保持鼠标指针的x位置和y位置。
我学到的是x值和y值在左上角分别为0和0
问题是x的值永远不会低于4,y的值永远不会低于23。
谁能告诉我为什么。
提前谢谢

frame.addMouseMotionListener(this);
坐标是相对于框架的,而不是相对于内容窗格的。4是边框的宽度,23是边框的高度加上边框的“标题区域”

请尝试以下方法:

p.addMouseMotionListener(this);

如果您是有意收听框架鼠标事件,请注意,如果按钮位于边框或标题区域上方,框架不幸不会触发事件。。。这就是为什么当你指向帧的左上角时,你不会看到(0,0)

坐标是相对于框架的,而不是相对于内容窗格的。4是边框的宽度,23是边框的高度加上边框的“标题区域”

请尝试以下方法:

p.addMouseMotionListener(this);

如果您是有意收听框架鼠标事件,请注意,如果按钮位于边框或标题区域上方,框架不幸不会触发事件。。。这就是为什么当你指向帧的左上角时,你不会看到(0,0)