用Java在JFrame上显示鼠标坐标

用Java在JFrame上显示鼠标坐标,java,swing,awt,Java,Swing,Awt,此代码创建一个框架屏幕,并在用户单击框架上的任意位置时生成mouseEvent。但是,我希望代码能够在用户单击鼠标按钮的任何位置获取光标坐标,而不仅仅是获取JFrame右上角的坐标。我不知道如何做到这一点。任何帮助都将不胜感激 import java.awt.Color; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.M

此代码创建一个框架屏幕,并在用户单击框架上的任意位置时生成mouseEvent。但是,我希望代码能够在用户单击鼠标按钮的任何位置获取光标坐标,而不仅仅是获取JFrame右上角的坐标。我不知道如何做到这一点。任何帮助都将不胜感激

import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
   public class Hw2MouseEventController extends JFrame {
   public Hw2MouseEventController() {
        MouseClkd mouse = new MouseClkd();
        setLayout(new GridLayout());
        add(mouse);
    }

    public static void main(String[] args) {
        Hw2MouseEventController frame = new Hw2MouseEventController();
        frame.setTitle("Mouse Event Controller");
        frame.setLocation(450, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(450, 450);
        frame.setVisible(true);
    }

    static class MouseClkd extends JPanel {
        private int x;
        private int y;

        public MouseClkd() {
            addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    x = e.getX();
                    y = e.getY();
                    repaint();
                }
            });
        }

        public void paint(Graphics g) {
            super.paint(g);
            g.fillRect(0, 0, this.getWidth(), this.getHeight());
            g.setColor(Color.white);
            g.drawString("(" + x + "," + y + ")", 10, 10);
        }
    }}
我只想在用户单击鼠标时显示单击位置的坐标

这就是正在发生的事情。您已将鼠标侦听器添加到面板中,因此可以相对于面板单击鼠标

如果希望鼠标相对于帧单击,则需要将鼠标侦听器添加到帧中

或者你只需要改变一下:

//g.drawString("(" + x + "," + y + ")", 10, 10);
g.drawString("(" + x + "," + y + ")", x, y);

我都试过了,但结果没有改变@Camickr对我来说很好。也就是说,我在单击鼠标的位置显示文本,文本显示鼠标点的值。我想我不明白你对这个问题的解释。告诉我们您看到了什么以及您希望看到什么。我将再次尝试您的解决方案。我想你是对的。也就是说,我在单击鼠标的位置显示文本,文本显示鼠标点的值。这就像我的问题。你能在这里写下你的代码吗@CAMICKR请阅读并遵循张贴指南,尤其是。除此之外,我们需要知道您的代码的作用。