【发布时间】:2018-05-25 16:49:24
【问题描述】:
我试图将 mouseListener 和 mouseMotionListener 添加到我的游戏中,并注意到我可以将它们添加到 Canvas 或 JFrame。我将其添加到两者还是其中之一?
【问题讨论】:
-
另一篇文章似乎没有解决这个问题。
标签: java canvas jframe mouselistener mousemotionlistener
我试图将 mouseListener 和 mouseMotionListener 添加到我的游戏中,并注意到我可以将它们添加到 Canvas 或 JFrame。我将其添加到两者还是其中之一?
【问题讨论】:
标签: java canvas jframe mouselistener mousemotionlistener
将其附加到画布上
您应该将鼠标侦听器添加到画布,原因有一个: 坐标。
如果将鼠标侦听器附加到框架,坐标的 0 点将位于 JFrame 边框的左上角。很难计算相对于画布的坐标。
您也可以将鼠标侦听器附加到 Canvas。有了这个坐标会更好。但是不要忘记在添加监听器后将焦点放在画布上:
canvas.addMouseMotionListener(motionListener);
canvas.requestFocus();
【讨论】: