Java 选择性拖放

Java 选择性拖放,java,drag-and-drop,Java,Drag And Drop,我有两个JList和两个JTextField,我希望能够从一个JList拖动到其中一个JTextField,然后另一个JList将拖动到另一个JTextField,但是我不希望第一个JList能够拖放到第二个文本字段,反之亦然。那么我该怎么做呢?我已经浏览了Oracle java教程,但没有发现任何有用的东西 下面是我在JTextfields上使用的TransferHandler类: class CustomTransferHandler extends TransferHandler { in

我有两个JList和两个JTextField,我希望能够从一个JList拖动到其中一个JTextField,然后另一个JList将拖动到另一个JTextField,但是我不希望第一个JList能够拖放到第二个文本字段,反之亦然。那么我该怎么做呢?我已经浏览了Oracle java教程,但没有发现任何有用的东西

下面是我在JTextfields上使用的TransferHandler类:

class CustomTransferHandler extends TransferHandler {
int action;

public CustomTransferHandler(int action) {
    this.action = action;
    }

    public int getSourceActions(JComponent c) {
        return COPY;
    }

    public Transferable createTransferable(JComponent c) {
        return new StringSelection(((JTextComponent) c).getSelectedText());
    }

    public boolean canImport(TransferHandler.TransferSupport support) {
        // for the demo, we'll only support drops (not clipboard paste)
        if (!support.isDrop()) {
            return false;
        }

        // we only import Strings
        if (!support.isDataFlavorSupported(DataFlavor.stringFlavor)) {
            return false;
        }

        boolean actionSupported = (action & support.getSourceDropActions()) == action;
        if (actionSupported) {
            support.setDropAction(action);
            return true;
        }


        return false;
    }

    public boolean importData(TransferSupport ts) {
        try {
            ((JTextComponent) ts.getComponent())
                .setText((String) ts
                         .getTransferable()
                         .getTransferData(DataFlavor.stringFlavor));
            return true;
        } catch(UnsupportedFlavorException | IOException e) {
            return false;
        }
    }
}