删除鼠标事件处理程序 JavaFX
Remove mouse event handler JavaFX
我有一个响应鼠标的代码,例如当我进入一个图像区域时,图像变暗,当我退出它时,它变得正常,问题是当我 运行 代码时,我有 9 张图片,当鼠标移到第一张图片上时它变暗,当它移到另一张图片上时,第一张图片再次变暗而第二张图片不变。
代码如下:
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");
}
});
}
}
我需要检查你的 fxml,但你的代码中有一个基本错误。您需要删除 onMouseEntered()
和 onMouseExit()
.
的重复使用
试试
@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);
}
我有一个响应鼠标的代码,例如当我进入一个图像区域时,图像变暗,当我退出它时,它变得正常,问题是当我 运行 代码时,我有 9 张图片,当鼠标移到第一张图片上时它变暗,当它移到另一张图片上时,第一张图片再次变暗而第二张图片不变。
代码如下:
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");
}
});
}
}
我需要检查你的 fxml,但你的代码中有一个基本错误。您需要删除 onMouseEntered()
和 onMouseExit()
.
试试
@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);
}