グリッド ペインで Drag&Drop-Event を実行しようとしましたが、うまくいきませんでした。ドラッグは検出されますが、ドラッグ オーバー イベントもドロップ イベントも検出されません。私が間違っていることは何ですか?
これが私が試したコードです:
public class FXMLDocumentController implements Initializable {
@FXML
private GridPane grid;
@Override
public void initialize(URL url, ResourceBundle rb) {
StackPane sourcePane = new StackPane(new Text("Source"));
StackPane targetPane = new StackPane(new Text("Target"));
sourcePane.setOnDragDetected(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
sourcePane.startDragAndDrop(TransferMode.ANY);
System.out.println("Drag detected");
event.consume();
}
});
targetPane.setOnDragOver(new EventHandler<DragEvent>() {
@Override
public void handle(DragEvent event) {
event.acceptTransferModes(TransferMode.ANY);
System.out.println("Drag over detected");
event.consume();
}
});
targetPane.setOnDragDropped(new EventHandler<DragEvent>() {
@Override
public void handle(DragEvent event) {
event.acceptTransferModes(TransferMode.ANY);
System.out.println("Drop detected");
event.consume();
}
});
grid.add(sourcePane, 1, 1);
grid.add(targetPane, 0, 1);
}
}