使文本跟随 JPanel 中的光标



我正在尝试使特定的文本字符串跟随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);
}
我认为

您需要添加:

addMouseListener(y);
addMouseMotionListener(y);
  • 加上我认为在单独的类中编码会更好。您还可以扩展 MouseInputAdapter 而不是实现 MouseMotionListener。

相关内容

  • 没有找到相关文章

最新更新