Re: [問題] addMouseListener(自己設的class

看板java作者 (十年一夢)時間10年前 (2013/11/03 14:21), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

11/03 17:24, , 1F
非常感謝,我立刻試試( ̄▽ ̄)
11/03 17:24, 1F

11/03 21:03, , 2F
這...這實在是太棒了,超級好用的,太太太感謝了(〞︶〝*)
11/03 21:03, 2F
文章代碼(AID): #1ITUk1sN (java)
文章代碼(AID): #1ITUk1sN (java)