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)