implementar esta parte del codigo y el problema es que el metodo dragged no me esta funcionando la figura geometrica que estoy arrastrando es un triangulo
si me pueden ayudar se lo agrdeceria
Código:
public class InterfazTangram extends Canvas implements MouseMotionListener{ private boolean arrastrando = false; //x en la que estaba anteriormente el ratón. private int xAnteriorRaton; //y en la que estaba anteriormente el ratón private int yAnteriorRaton; //x en la que estaba anteriormente el ratón 1. private int xAnteriorRaton1; //y en la que estaba anteriormente el ratón 1. private int yAnteriorRaton1; //x en la que estaba anteriormente el ratón 2. private int xAnteriorRaton2; //y en la que estaba anteriormente el ratón 2. private int yAnteriorRaton2; int coordX[ ] = { 50,100,150}; int coordY[ ] = { 100,150,150}; public InterfazTangram() { addMouseMotionListener(this); } public void paint(Graphics g) { g.setColor(Color.RED); //g.fillRect(coordX,coordY,3); //g.setColor(Color.blue); g.fillPolygon(coordX, coordY, 3); // g.drawLine(alto, ancho, x, y); } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub // Si comienza el arrastre ... if (!arrastrando) { // ... y el ratón está dentro del rectángulo if (estaDentro(e)) { // Se guardan las posiciones del ratón xAnteriorRaton = coordX[0]; yAnteriorRaton = coordY[0]; xAnteriorRaton1 = coordX[1]; yAnteriorRaton1 = coordY[1]; xAnteriorRaton2 = coordX[2]; yAnteriorRaton2 = coordY[2]; // y se marca que ha comenzado el arrastre. arrastrando = true; } } else { // Si ya había empezado el arrastre, se calculan las nuevas // coordenadas del rectángulo coordX[0] = (coordX[0] + e.getX()) - xAnteriorRaton; coordY[0] = (coordY[0] + e.getY()) - yAnteriorRaton; coordX[1] = (coordX[1] + e.getX()) - xAnteriorRaton1; coordY[1] = (coordY[1] + e.getY()) - yAnteriorRaton1; coordX[2] = (coordX[2] + e.getX()) - xAnteriorRaton2; coordY[2] = (coordY[2] + e.getY()) - yAnteriorRaton2; // Se guarda la posición del ratón para el siguiente cálculo xAnteriorRaton = e.getX(); yAnteriorRaton = e.getY(); xAnteriorRaton1 = e.getX(); yAnteriorRaton1 = e.getY(); xAnteriorRaton2 = e.getX(); yAnteriorRaton2 = e.getY(); // y se manda repintar el Canvas repaint(); } } private boolean estaDentro(MouseEvent e) { if ( (e.getX() > coordX[0] && e.getX() > coordX[1] && e.getX() > coordX[2] ) && (e.getX() < (coordX[0] + (coordX[2]-coordX[1]))) && (e.getY() >coordY[0] && e.getY() > coordY[1] && e.getX() > coordY[2]) && (e.getY() < (coordY[0] + (coordY[0]-coordY[1])))) { return true; } return false; } @Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub arrastrando = false; } public static void main(String[] args) { JFrame v = new JFrame("Arrastrar Grafico"); InterfazTangram c = new InterfazTangram(); v.getContentPane().add(c); v.setSize(500,500); //v.pack(); v.setVisible(true); v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } }