Перетащите с JLabel - PullRequest
       12

Перетащите с JLabel

3 голосов
/ 26 ноября 2009

Могу ли я перетащить JLabel и вставить в него пользовательский объект или я должен использовать другой компонент? Но я должен использовать TransferHandler с exportAsDrag.

Мой код:

final JLabel label1 = new JLabel("Drag here");
Collection<Person> person= new ArrayList<Person>();

//Register transferhandler objects on them label1 transfer itss
//foreground coloer label2 transfer its backgroundcolor

//need here a Transferable to put the object
label1.setTransferHandler(new TransferHandler(....));

label1.addMouseMotionListener(new MouseMotionAdapter() {
    @Override
    public void mouseDragged(MouseEvent e) {
        // TODO Auto-generated method stub
        TransferHandler handler = label1.getTransferHandler();
        handler.exportAsDrag(label1, e, TransferHandler.COPY);
    }
});

1 Ответ

2 голосов
/ 26 ноября 2009

Зависит от того, что вы хотите перетащить - JLabel или просто текст.

Когда вы перетаскиваете что-то, вы создаете «модель» перетаскиваемого объекта, когда вы отбрасываете его, вы обычно создаете что-то новое в месте назначения на основе этой модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...