java - 在 JPanel 中使文本跟随光标

标签 java swing graphics awt mouselistener

我正在尝试使特定的文本字符串跟随 JPanel 内的光标。我创建了一个扩展 JPanel 并实现 MouseMotionListener 的类。该代码似乎不起作用。显示了文本,但它没有跟随光标。

package followthemouse;

import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JPanel;

public class TheJPanel extends JPanel implements MouseMotionListener {

    private int x = 20;
    private int y = 20;

    @Override
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        g.drawString("I love your cursor!", x, y);

    }


    @Override
    public void mouseMoved (MouseEvent me)
    {
        x = me.getX();
        y = me.getY();
        repaint();
    }

    @Override
    public void mouseDragged (MouseEvent me)
    {

    }


}

这是主函数中的内容:

package followthemouse;

import javax.swing.JFrame;

/**
 *
 * @author Vikram
 */
public class FollowTheMouse extends JFrame{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        TheJPanel y = new TheJPanel();
        JFrame x = new JFrame("The TITLE");
        x.add(y);
        x.setSize(400, 400);
        x.setVisible(true);

    }
}

我做错了什么?

最佳答案

您应该将监听器添加到面板。

插入以下构造函数:

public TheJPanel() {
    this.addMouseMotionListener(this);
}

关于java - 在 JPanel 中使文本跟随光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400197/

相关文章:

graphics - 通过旋转 2D 轮廓创建和渲染 3D 模型的最简单方法

java - 编码类型以阻止文件(文本)提示下载?

java - 全屏和窗口模式切换失败

java - 如何修复错误 "Subject class type invalid."

java - 如何让JTextPane(或JEditorPane)在文本行达到Pane的大小后自动换行?

java - 将 SOP 控制台消息重定向到 JTextArea 并且也不应该闪烁并且应该与 java 控制台相同逐行打印

java - 将滚动条添加到 jframe 网格

algorithm - Reinhard 色调映射 2002

java - Android:从菜单项开始新 Activity

java - TIBCO JMS palatte 的 jar 文件的名称?