Ola pessoal, como posso fazer para que, quando eu clicar no component, arrastar uma copia dele em um mesmo frame?
Desde ja agradeço.
Ola pessoal, como posso fazer para que, quando eu clicar no component, arrastar uma copia dele em um mesmo frame?
Desde ja agradeço.
Dá uma olhada nos fontes, qte lá tem o processo de arraste do componente.
Ola davidbuzatto, consegui fazer arrastar o component, mas eu queria que quando eu fosse arrastar o component em vez de arrastar ele proprio, arrastar uma copia dele.
Obrigado pela ajuda.
Ao clicar no componente, criau ma nova instancia, adiciona no container e manda o componente criado seguir o mouse.
Davidbuzatto fiz este codigo aqui, mas nao ta dando certo voce poderia me falar o que ha de errado nele?
O codigo:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Arrastar extends JFrame implements MouseMotionListener, MouseListener {
JComponent newInstance = null;
JButton botao = null;
public Arrastar(){
botao = new JButton("Arraste-me");
botao.addMouseListener(this);
getContentPane().add(botao);
}
public void mouseClicked(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
public void mousePressed(MouseEvent arg0) {
try {
newInstance = botao.getClass().newInstance();
getContentPane().add(newInstance);
newInstance.addMouseMotionListener(this);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
public void mouseReleased(MouseEvent arg0) {
}
public void mouseDragged(MouseEvent arg0) {
newInstance.setLocation((int)MouseInfo.getPointerInfo().getLocation().getX(),
(int)MouseInfo.getPointerInfo().getLocation().getY());
}
public void mouseMoved(MouseEvent arg0) {
}
public static void main(String[] strings){
Arrastar a = new Arrastar();
a.setLayout(new FlowLayout());
a.setDefaultCloseOperation(EXIT_ON_CLOSE);
a.setSize(500, 300);
a.setVisible(true);
}
}
Obrigado.