关于鼠标点击坐标的一种解决方案

来源:2-10 鼠标事件

码海剑齿鲨

2024-06-14

bobo老师好,

看到提问区和评论区同学遇到的问题,我也遇到相同的情形——更改pack()和resize()顺序后,通过translatePoint,仍然左上角坐标非(0,0)而有偏移

通过如下代码可解决

        event.translatePoint(-(frame.getBounds().width - frame.getCanvasWidth())/2,
                -(frame.getBounds().height - frame.getCanvasHeight()) + (frame.getBounds().width - frame.getCanvasWidth())/2)

环境:win10系统,java8

解决过程:

  1. 通过frame.getBounds().width 、frame.getCanvasWidth()、frame.getBounds().height、frame.getCanvasHeight() 的返回值查看实际值情况
  2. 发现窗体左右与pane的两侧都有距离,而且距离刚好是 (窗体宽度-画布宽度)/2
  3. 发现除了上方加了menubar, 画布下侧与窗体边缘同样有距离,猜测与左右距离一致,验证也确实如此
    不确定这个添加是哪一部分进行的,但是对于window10系统,java8可以解决

bobo老师的可视化课程虽然是很久前录制的,但是放在现在依旧实用,还是能给人很多启发,同时能对算法的理解更深入,非常谢谢bobo老师

希望这个解决方案能让一部分继续学习这门课程的伙伴们顺利实践这小节的内容

写回答

1回答

liuyubobobo

2024-06-14

大赞!感谢你的分享:)


继续加油!:)

0
0

7个经典应用诠释Java算法精髓

课程重应用、重实践、重思维,真正应用于实际工作开发中

1896 学习 · 113 问题

查看课程