我正在开发一个应用程序,我可以将ImageView拖放到任何地方。当我运行应用程序时,它第一次拖动ImageView时工作正常,但在我发布后没有响应。
这是我的FXML控制器:
@FXML
private ImageView card;
@FXML
private void handleCardMousePressed(MouseEvent event) {
System.out.println("Drag Entered");
DropShadow dropShadow=new DropShadow();
dropShadow.setColor(Color.rgb(18,139,237));
dropShadow.setSpread(.48);
card.setEffect(dropShadow);
card.setMouseTransparent(true);
event.consume();
}
@FXML
private void handleCardMouseDragged(MouseEvent event){
System.out.println("In Drag");
card.setLayoutX(event.getSceneX());
card.setLayoutY(event.getSceneY());
event.consume();
}
@FXML
private void handleCardMouseReleased(MouseEvent event){
System.out.println("Exit Drag");
card.setEffect(null);
event.consume();
}
答案 0 :(得分:1)
请勿在{{1}}方法中将mouseTransparent
设置为true
。
如果由于其他原因需要执行此操作(我无法理解您的原因),那么在handleMouseCardPressed
中您需要将handleCardMouseReleased(...)
设置为false:
mouseTransparent
完整示例:
card.setMouseTransparent(false);