Как я могу сделать это, чтобы сделать файл изображения?
Не уверен, что вы просто пытаетесь перенести значок или обои и текст одновременно.
Если вы просто хотите значок, вы можете использовать TransferHandler по умолчанию:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DragIcon extends JPanel
{
public DragIcon()
{
TransferHandler iconHandler = new TransferHandler("icon");
MouseListener dragListener = new DragMouseAdapter();
JLabel label1 = new JLabel("Label1");
label1.setTransferHandler(iconHandler);
label1.addMouseListener(dragListener);
label1.setIcon(new ImageIcon("copy16.gif"));
JLabel label2 = new JLabel("Label2");
label2.setTransferHandler(iconHandler);
label2.addMouseListener(dragListener);
add(label1);
add(label2);
}
private class DragMouseAdapter extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
JComponent c = (JComponent)e.getSource();
TransferHandler handler = c.getTransferHandler();
handler.exportAsDrag(c, e, TransferHandler.COPY);
// handler.exportAsDrag(c, e, TransferHandler.MOVE);
}
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("Drag Icon");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DragIcon());
frame.setLocationByPlatform(true);
frame.setSize(200, 100);
frame.setVisible(true);
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
Что-то вроде [это] (http://stackoverflow.com/questions/11460704/dragging-a-jlabel-with- a-transferhandler-drag-and-drop) или [это] (http://stackoverflow.com/questions/11201734/java-how-to-drag-and-drop-jpanel-with-its-components/11443501#11443501) – MadProgrammer