テキストをあるjlabelから別のjlabelに移動したいのですが、何らかの理由でコピーのみが機能し、移動はできません。私は transferhandler を使用しているので、handler.exportAsDrag(comp, e, TransferHandler.MOVE); で TransferHandler.COPY のみが機能します。
add1 = new JLabel("", JLabel.CENTER);
add1.setTransferHandler(new TransferHandler("text"));
add1.setBorder(b2);
add2 = new JLabel("", JLabel.CENTER);
add2.setTransferHandler(new TransferHandler("text"));
add2.setBorder(b2);
MouseListener listener = new DragMouseAdapter();
add1.addMouseListener(listener);
add2.addMouseListener(listener);
panel2a.add(add1);
panel2a.add(add2);
このプライベート内部クラスを使用してドラッグされます
private class DragMouseAdapter extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
JComponent comp = (JComponent)e.getSource();
TransferHandler handler = comp.getTransferHandler();
//c.setOpaque(true);
handler.exportAsDrag(comp, e, TransferHandler.MOVE);
}
}