Java 拒绝JtextField中的特定删除操作

Java 拒绝JtextField中的特定删除操作,java,swing,Java,Swing,我正在做一个Dragndop活动。有一个文本字段(q1ans)和两个选项(q1c1和q1c2)。在这个问题上,q1c1是正确的答案,但q1c1和q1c2都可以拖入文本字段。当q1c2被拖入文本字段时,我如何拒绝它? 这就是我到目前为止所做的: q1ans = new JTextField(); q1ans.setEditable(false); q1ans.setHorizontalAlignment(SwingConstants.CENTER); q1ans.s

我正在做一个Dragndop活动。有一个文本字段(q1ans)和两个选项(q1c1和q1c2)。在这个问题上,q1c1是正确的答案,但q1c1和q1c2都可以拖入文本字段。当q1c2被拖入文本字段时,我如何拒绝它? 这就是我到目前为止所做的:

    q1ans = new JTextField();
    q1ans.setEditable(false);
    q1ans.setHorizontalAlignment(SwingConstants.CENTER);
    q1ans.setBounds(380, 147, 44, 20);
    add(q1ans);
    q1ans.setTransferHandler(new TransferHandler("text"));
    q1ans.setColumns(10);

    question1 = new JTextField();
    question1.setEnabled(false);
    question1.setEditable(false);
    question1.setText("[ ] c,d //where c and d are integer arrays");
    question1.setBounds(424, 147, 208, 20);
    add(question1);
    question1.setColumns(10);


    q1c1 = new JTextField();
    q1c1.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseEntered(MouseEvent e) {
            q1c1.selectAll();
        }
    });
    q1c1.setEditable(false);
    q1c1.setDragEnabled(true);
    q1c1.setText("int");
    q1c1.setBounds(264, 197, 21, 23);
    add(q1c1);
    q1c1.setColumns(10);

    q1c2 = new JTextField();
    q1c2.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseEntered(MouseEvent e) {
            q1c2.selectAll();
        }
    });
    q1c2.setText("string");
    q1c2.setEditable(false);
    q1c2.setDragEnabled(true);
    q1c2.setColumns(10);
    q1c2.setBounds(341, 197, 34, 23);
    add(q1c2);

欢迎来到“哦,我的上帝,为什么这么复杂”的奇妙世界。DnD并不像人们想象的那么简单。你可以看一看和/或使用较新的
Transfer
APIOr哦,我的天啊,这为什么这么复杂?欢迎来到DnD的奇妙世界