Redian新闻
>
土问一个鼠标事件问题
avatar
土问一个鼠标事件问题# Java - 爪哇娇娃
i*9
1
《Contact》( 超时空接触,1997)
我一直相信外星人的存在。浩渺无边的宇宙,大到我们无法想象,如果只有地球上有生
命,岂不是一件很诡异的事情?地球人太好奇也太孤单了,多少年来孜孜不倦的寻找外
太空的生命迹象,一定还会继续寻找下去。
我也是个好奇的地球人,所以我对科幻片很有兴趣。科幻片对外星人的塑造一般有几类
,最常见的是攻击型的外星人,奇形怪状,狰狞无比,他们来地球的唯一目的就是消灭
地球人,统治地球,比如《天煞》《火星人玩转地球》《世界之战》。这类科幻片很老
套,却屡屡拿下高票房。也许是很多人喜欢体验死亡和惊悚的刺激,或者是喜欢震撼的
视觉效果。
第二类是温和型的外星人,比如ET,大大的脑袋,像个孩子一样可爱,他拥有和人相似
的感情,看了让人觉得感动和温馨。还有《深渊》(很老的一部科幻片),外星人用英
语和人类交流,向人类传达友好的信息。
第三类是我最喜欢的,但不知道应该怎么定义,也许叫科学型吧。
《超时空接触》的女主是个执着的科学家,对宇宙生命充满探索欲望。尤其是对她产生
深远影响的父亲去世时,她对科研的投入更加上了对父亲的强烈怀念。
历经艰难,她终于坐上飞船,穿越光怪陆
avatar
j*s
2
在jpanel上加了一个button并加了mouselistener,然后我让jpanel滚动,随着画布的
移动
button也滚动了,这符合预期。可是产生了个bug,鼠标必须点击在button原来的位置上
而不是button的当前显示位置,才有鼠标事件发生。貌似滚动jpanel的时候,button的
view自动更新了,但mouselistener没更新,还继续监控原来的位置。请问有解决办法
吗?
avatar
j*s
3
忘了说一点了,为了让button“固定”在画布上,随画布滚动而滚动,我把jpanel的
layout设成了null。
当button被滚动到左边以后,鼠标放在button原来的位置上,会又显示一个button,这
时屏幕上有两个button。
avatar
l*0
4
你是不是监听了jpanel,而不是button?
监听事件取了鼠标指针坐标?

【在 j*******s 的大作中提到】
: 忘了说一点了,为了让button“固定”在画布上,随画布滚动而滚动,我把jpanel的
: layout设成了null。
: 当button被滚动到左边以后,鼠标放在button原来的位置上,会又显示一个button,这
: 时屏幕上有两个button。

avatar
j*s
5
这算是java1.5的一个bug吗?
button.setLocation(500,100),然后panel滚动到(500,0);
这时button显示在屏幕最左端,mouselistener却使用panel的相对位置(500,0)也就是
绝对位置(1000,0)寻找button。
难道要自己写一个mouselistener?
avatar
j*s
6
我用的是 button.addMouseListener(panel);

【在 l********0 的大作中提到】
: 你是不是监听了jpanel,而不是button?
: 监听事件取了鼠标指针坐标?

avatar
Z*e
7
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。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。