Olá pessoal, estou desenvolvendo uma ferramenta que desenha algumas formas.
Nessa ferramenta tenho uma paleta de componentes, assim como no CorelDRAW, Photoshop, etc
Depois de muito estudo consegui utilizar o listener DragGestureListener, onde o usuário seleciona um componente na paleta e ARRASTA até o canvas.
Porém, o ideal seria construir uma espécie de “MoveAndDrop”, ou seja, em vez do usuário selecionar o elemento e precisar ARRASTAR até o canvas, o usuário precisaria apenas selecionar o elemento na paleta e MOVER até o canvas, assim como no CorelDRAW.
Aqui vai uma parte do código onde eu crio o evento:
...
DragGestureListener dragListener = new DragGestureListener() {
public void dragGestureRecognized(DragGestureEvent e) {
e.startDrag(null , transferableObject);
}
};
DragSource dragSource = new DragSource();
dragSource.createDefaultDragGestureRecognizer(botao,
DnDConstants.ACTION_COPY, dragGestureListener);
...
Pensei em duas maneiras de tentar solucionar esse problema, uma delas é implementar um DragAndDrop “personalizado”, onde o processo de drag seria feito no evento mouseMoved em vez do mouseDragged. Outra, acho que bem mais fácil, é no evento mouseMoved invocar o evento mouseDragged, porém, não sei exatamente como faço isso, apenas o comando mouseDragged(evento) não funciona. =/
Alguem me ajuda?
-
Desde já, agradeço qualquer contribuição
valew pessoal