我希望通过覆盖它上面的鼠标事件来启用JLabel上的拖放功能,但是当我在mousePressed事件中定义拖放时,mouseReleased不会对该JLabel生效.难道我做错了什么 ?
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);
});
Run Code Online (Sandbox Code Playgroud)
*缩略图是JLabel的数组
运行程序时,拖放工作,但"此处鼠标已释放"语句不会打印.但是,当我从mousePressed()方法中删除负责DND的代码时,将打印"此处鼠标已释放".
这段代码有什么问题?
我创建了一个框架,然后在其中创建了面板.我在一个面板中放置了一个图像,现在我需要将该图像拖到另一个面板上.我怎么能这样做 作为初学者,请逐步解释.