j*******s 发帖数: 81 | 1 在jpanel上加了一个button并加了mouselistener,然后我让jpanel滚动,随着画布的
移动
button也滚动了,这符合预期。可是产生了个bug,鼠标必须点击在button原来的位置上
而不是button的当前显示位置,才有鼠标事件发生。貌似滚动jpanel的时候,button的
view自动更新了,但mouselistener没更新,还继续监控原来的位置。请问有解决办法
吗? |
j*******s 发帖数: 81 | 2 忘了说一点了,为了让button“固定”在画布上,随画布滚动而滚动,我把jpanel的
layout设成了null。
当button被滚动到左边以后,鼠标放在button原来的位置上,会又显示一个button,这
时屏幕上有两个button。 |
l********0 发帖数: 283 | 3 你是不是监听了jpanel,而不是button?
监听事件取了鼠标指针坐标?
【在 j*******s 的大作中提到】 : 忘了说一点了,为了让button“固定”在画布上,随画布滚动而滚动,我把jpanel的 : layout设成了null。 : 当button被滚动到左边以后,鼠标放在button原来的位置上,会又显示一个button,这 : 时屏幕上有两个button。
|
j*******s 发帖数: 81 | 4 这算是java1.5的一个bug吗?
button.setLocation(500,100),然后panel滚动到(500,0);
这时button显示在屏幕最左端,mouselistener却使用panel的相对位置(500,0)也就是
绝对位置(1000,0)寻找button。
难道要自己写一个mouselistener? |
j*******s 发帖数: 81 | 5 我用的是 button.addMouseListener(panel);
【在 l********0 的大作中提到】 : 你是不是监听了jpanel,而不是button? : 监听事件取了鼠标指针坐标?
|
Z****e 发帖数: 2999 | 6 if you want the button "hover" over the viewport, you might just want to
place it outside of the jpanle, saves you a ton of trouble
【在 j*******s 的大作中提到】 : 忘了说一点了,为了让button“固定”在画布上,随画布滚动而滚动,我把jpanel的 : layout设成了null。 : 当button被滚动到左边以后,鼠标放在button原来的位置上,会又显示一个button,这 : 时屏幕上有两个button。
|