用于拖放的JLabel鼠標(biāo)事件我希望通過覆蓋它上面的鼠標(biāo)事件來啟用JLabel上的拖放功能,但是當(dāng)我在mousePressed事件中定義拖放時(shí),mouseReleased不會(huì)對該JLabel生效。難道我做錯(cuò)了什么 ? Thumbnails[I_Loop].setText("1");
Thumbnails[I_Loop].setTransferHandler(new TransferHandler("text"));
Thumbnails[I_Loop].addMouseListener( new MouseAdapter() {
public void mouseReleased(MouseEvent me) {
System.out.println("here mouse released");
}
public void mousePressed(MouseEvent me) {
System.out.println("here mouse pressed");
JComponent comp = (JComponent) me.getSource();
TransferHandler handler = comp.getTransferHandler();
handler.exportAsDrag(comp, me, TransferHandler.COPY);
});*縮略圖是JLabel的數(shù)組運(yùn)行程序時(shí),拖放工作,但“此處鼠標(biāo)已釋放”語句不會(huì)打印。但是,當(dāng)我從mousePressed()方法中刪除負(fù)責(zé)DND的代碼時(shí),將打印“此處鼠標(biāo)已釋放”。這段代碼有什么問題?
3 回答

長風(fēng)秋雁
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
好吧,如果我沒記錯(cuò)的話,拖放機(jī)器會(huì)捕獲所有鼠標(biāo)事件并自行處理它們。因此,不再拋出正常的MouseEvents。你需要DropTargetListener
在JLabel上注冊一個(gè)DropTarget
。
添加回答
舉報(bào)
0/150
提交
取消