图形元素上的Java MouseListener

图形元素上的Java MouseListener,java,Java,我想将MouseStener添加到这个图形元素中 g.drawString("String",50,50); 有没有什么简单的方法可以做到这一点,或者我必须手动查找元素位置 谢谢你的建议: 要移动字符串,可以将其放入JLabel中,然后通过鼠标侦听器移动JLabel 或者,您可以使用MouseListener/MouseMotionListener简单地移动绘制的字符串,即在paintComponent方法中绘制的字符串,但是您仍然需要识别何时单击了该字符串,这对于JLabel来说要容易得多

我想将MouseStener添加到这个图形元素中

g.drawString("String",50,50);
有没有什么简单的方法可以做到这一点,或者我必须手动查找元素位置

谢谢你的建议:

  • 要移动字符串,可以将其放入JLabel中,然后通过鼠标侦听器移动JLabel
  • 或者,您可以使用MouseListener/MouseMotionListener简单地移动绘制的字符串,即在paintComponent方法中绘制的字符串,但是您仍然需要识别何时单击了该字符串,这对于JLabel来说要容易得多
  • 要移动图形,如果它是图像,可以使用它创建一个图像图标,将其放入JLabel中,并使用上面的字符串/JLabel执行相同的操作
  • 或者您可以在paintComponent方法中将其绘制为BuffereImage精灵,并通过MouseAdapter在paintComponent方法中移动其绘制位置,但同样,困难的部分将是在鼠标单击它时识别。既然你知道它的尺寸和位置,这应该不难做到
  • 或者,如果是Graphics2D图形,则可以创建一个图形实现对象,并移动该图形
例如,请在下面的链接中查看我以前的答案和示例代码:

public void mouseEntered(MouseEvent e) {
   saySomething("Mouse entered", e);
}

public void mouseExited(MouseEvent e) {
   saySomething("Mouse exited", e);
}