java - 在Java中的JFrame上显示鼠标坐标

标签 java swing awt

此代码创建一个 Frame 屏幕,并在用户单击 Frame 上的任意位置时生成 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);
        }
    }}

最佳答案

I just want to display coordinates at clicked place when user clicks the mouse.

这就是正在发生的事情。您将 MouseListener 添加到面板中,以便获得相对于面板的鼠标单击。

如果你希望鼠标点击相对于框架,那么你需要将MouseListener添加到框架中。

或者也许您只需要更改:

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

关于java - 在Java中的JFrame上显示鼠标坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320400/

相关文章:

java - 将项目从 map 添加到 JComboBox

java - android中的抽屉导航不是全屏

Java Applet 类文件

java - 在 Java 中测试两个 JSON 对象的相等性并忽略子顺序

java - 通过Java应用程序动态更新和生成WAR文件

java - 在圆圈内绘制随机点

java - TableModel 与 ColumnModel : who owns the column value?

java - 我怎样才能使这个 JButton 可见?当我有逐行扫描背景 JWindow() 时?

java - Icon 和 ImageIcon 的区别?

java - 使用 AWT 组件更改 Java 中的 MenuBar、Menu 和 MenuItem 的颜色