/ / Remover o manipulador de eventos do mouse JavaFX - javafx

Remover manipulador de eventos do mouse JavaFX - javafx

Eu tenho um código que responde ao mouse, porPor exemplo, quando entro em uma área de imagem, a imagem fica mais escura e quando saio, fica normal, o problema é quando executo o código, tenho 9 imagens e, quando o mouse passa a primeira imagem, fica mais escura e quando vai para outra imagem, novamente a primeira imagem fica mais escura e a segunda imagem não muda.

Aqui está o código:

public class FrameController implements Initializable {

@FXML
private GridPane album;
ImageView im;

/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}

@FXML
private void mouseEntered(MouseEvent event) {
im = (ImageView) event.getSource();
System.out.println("Entered: " + im.getId());
im.setOnMouseEntered(new EventHandler<MouseEvent>() {

@Override
public void handle(MouseEvent event) {
ColorAdjust ca = new ColorAdjust();
ca.setBrightness(-0.5);
im.setEffect(ca);
}
});
}
@FXML
private void mouseExited(MouseEvent event) {
im = (ImageView) event.getSource();
System.out.println("Exited: " + im.getId());
im.setOnMouseExited(new EventHandler<MouseEvent>() {

@Override
public void handle(MouseEvent event) {
im.setEffect(null);
System.out.println("normal");
}
});
}

}

Respostas:

0 para resposta № 1

Preciso verificar seu fxml, mas você tem um erro básico no seu código. Você precisa remover a reutilização de onMouseEntered() e onMouseExit().

Tente com

@FXML
private void mouseEntered(MouseEvent event) {
im = (ImageView) event.getSource();
System.out.println("Entered: " + im.getId());
ColorAdjust ca = new ColorAdjust();
ca.setBrightness(-0.5);
im.setEffect(ca);
}

@FXML
private void mouseExited(MouseEvent event) {
im = (ImageView) event.getSource();
System.out.println("Exited: " + im.getId());
im.setEffect(null);
}