Re:Drag'n'Drop de Componentes

2 respostas
B

Cara, não sei se vai ajudar, mas em http://www.javaworld.com/jw-03-1999/jw-03-dragndrop.html
tem um artigo muito bom sobre DnD. Lá tem alguns fontes de exemplo…

qq coisa, avisa.

[]s!

Tkm

2 Respostas

theBalrog

Bom dia pessoal,

Já dei uma olhada preliminar por ai, mas não encontrei o que eu queria.
O Swing oferece suporte para Drag’n’Drop de componentes, ou devo programar esse comportamento atraves de listeners de Mouse?

Alguém já fez isso, ou recomenda alguma coisa?
Só o que encontrei até agora foi a implementação com TransferHandler que faz o Drag’n’Drop de conteúdo, que não é o que eu quero.

Continuarei pesquisando, obrigado pela ajuda desde já.

theBalrog

Bom, não achei conteúdo, resolvi implementar,

Mas o comportamento está estranho, como se o componente voltasse à posição original. Alguém consegue enxergar onde estou errando?

class Tester {
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame();
                frame.getContentPane().setLayout(null);
                JLabel label = new JLabel("LABEL");
                label.setBounds(50, 50, 80, 80);
                label.addMouseMotionListener(new MouseListenerImpl());
                frame.getContentPane().add(label);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setBounds(0, 0, 800, 600);
                frame.setVisible(true);            }
        });
    }
}

class MouseListenerImpl extends MouseMotionAdapter {
    @Override
    public void mouseDragged(MouseEvent e) {
        JComponent comp = (JComponent) e.getComponent();

        comp.setLocation(e.getX(), e.getY());
        System.out.printf("(%d, %d)\n", e.getX(), e.getY());
    }
}

Novamente, agradeço pela ajuda.

Criado 15 de novembro de 2006
Ultima resposta 6 de nov. de 2006
Respostas 2
Participantes 2