il mio problema è che non riesco a far funzionare il metodo dragged sapete darmi una risposta del perchè non funziona?
codice:
private class TraslaMouseInputListener extends MouseAdapter implements MouseMotionListener {
private double mouseX, mouseY;
private Point2D.Double p1;
public void mousePressed(MouseEvent event) {
mouseX = event.getX();
mouseY = event.getY();
}
public void mouseDragged(MouseEvent event) {
System.out.println("dentro dragged");
int currMouseX = event.getX();
int currMouseY = event.getY();
if(casa[traslare]!=null && casa[traslare].contains(mouseX, mouseY)) {//test su mouseX e mouseY !!!
casa[traslare].x+= currMouseX - mouseX;
casa[traslare].y += currMouseY - mouseY;
mouseX = currMouseX;
mouseY = currMouseY;
repaint(); }
}
public void mouseReleased(MouseEvent event) {
int currMouseX = event.getX();
int currMouseY = event.getY();
int i=0;
while(i<(maxParcheggi)) {
if(casa[i]!=null && casa[i].contains(mouseX, mouseY)) { //test su mouseX e mouseY !!!
Rectangle2D tempor=new Rectangle2D.Double(casa[i].x,casa[i].y,casa[i].width,casa[i].height);
double width=casa[i].width;
double height=casa[i].height;
// System.out.println("mouse released"+currMouseX);
//System.out.println("mouse released"+ currMouseY);
traslare=i;
casa[i].x += currMouseX - mouseX;
casa[i].y += currMouseY - mouseY;
mouseX = currMouseX;
mouseY = currMouseY;
System.out.println("traslare"+traslare);
//qui effettuare il controllo dell'intersezione
if(ControlloRuotaTrasla(casa[i],i) && ControlloPerimetro(casa[i]) ) {
} else{
casa[i].x=tempor.getX();
casa[i].y=tempor.getY();
casa[i].height = height;
casa[i].width =width;
}
}
i++;
}
repaint();
}
qui tutte le cose che ho importato
codice:
import java.awt.*;
import java.io.*;
import javax.imageio.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
import java.lang.Math;
import java.lang.String;
import javax.swing.JColorChooser;