作者sbrhsieh (十年一梦)
看板java
标题Re: [问题] addMouseListener(自己设的class
时间Sun Nov 3 14:21:51 2013
※ 引述《kenotic (弱智)》之铭言:
: 新手请教一下
: 若是在label上加入mouselistener,如下 (实际上应该会用for回圈
: labelA.addMouseListener(DrawPic);
: labelB.addMouseListener(DrawPic);
: ...
: labelZ.addMouseMotionListener(DrawPic);
: 并且在class DrawPicC里分别设定labelA、B...labelZ的座标
: 请问除了labelA.setLocation(...) labelB.setLocation() 一个一个写以外
: 有没有更便捷的方法?
: 例如说有个能够取得"你现在所拖曳的label"的方法getDragedLabel()
: 这里的getDragedLabel()取得的物件相当於labelA (或是labelB、C等等
: 然後做以下的动作
: new JLabel = dragedLabel;
: dragedLabel = getDragedLabel(); (让dragedLabel等於你现在所拖曳的label
: getDragedLabel().setLocation(....)
: 换言之,有没有取得 XXX.addMouseMotionListener() XXX物件的方法
: 感谢
: (新手不晓得这样问有没有让人看懂意思XD
每个 event(EventObject) 都带有发出这个 event 的来源(source property),
而 ComponentEvent 则带有送出这个 event 的 component 资讯。通常 Component-
Event 的 source 会同於发出 event 的 component。
*MouseEvent 是 ComponentEvent。
假如你只是要移动被滑鼠拖曳的那个"组件",那麽你只需要知道 mouse event 是
发生在哪个 Component 上(而不是在哪个 label 上),故 ComponentEvent::
getComponent 很符合你的需要。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.166.240.231
1F:推 kenotic:非常感谢,我立刻试试( ̄▽ ̄) 11/03 17:24
2F:推 kenotic:这...这实在是太棒了,超级好用的,太太太感谢了(〞︶〝*) 11/03 21:03