作者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
推 kenotic:非常感謝,我立刻試試( ̄▽ ̄) 11/03 17:24
推 kenotic:這...這實在是太棒了,超級好用的,太太太感謝了(〞︶〝*) 11/03 21:03