I have a Pane into which I want to move files, but for some reason it doesn’t trigger on these events, I’m already confused, the pane processes all events except setOnDragOver, setOnDragEntered, setOnDragExited, setOnDragDropped
<code>val drag = Pane().apply {
id = "dragFile"
layoutX = 28.0
layoutY = 58.0
val dragImage = ImageView().apply {
id = "drag"
fitWidth = 80.0
fitHeight = 80.0
layoutX = 60.0
layoutY = 20.0
}
val dragText = Label("text").apply {
id = "dragText"
layoutX = 29.0
layoutY = 100.0
}
children.addAll(dragImage, dragText)
setOnDragOver { event ->
if (event.dragboard.hasFiles()) {
event.acceptTransferModes(TransferMode.COPY)
}
event.consume()
}
setOnDragEntered { event ->
if (event.dragboard.hasFiles()) {
id = "dragFileActive"
}
event.consume()
}
setOnDragExited { _ -> id = "dragFile" }
setOnDragDropped { event ->
if (event.dragboard.hasFiles()) {
event.isDropCompleted = true
handler(event.dragboard.files)
}
event.consume()
}
}
</code>
<code>val drag = Pane().apply {
id = "dragFile"
layoutX = 28.0
layoutY = 58.0
val dragImage = ImageView().apply {
id = "drag"
fitWidth = 80.0
fitHeight = 80.0
layoutX = 60.0
layoutY = 20.0
}
val dragText = Label("text").apply {
id = "dragText"
layoutX = 29.0
layoutY = 100.0
}
children.addAll(dragImage, dragText)
setOnDragOver { event ->
if (event.dragboard.hasFiles()) {
event.acceptTransferModes(TransferMode.COPY)
}
event.consume()
}
setOnDragEntered { event ->
if (event.dragboard.hasFiles()) {
id = "dragFileActive"
}
event.consume()
}
setOnDragExited { _ -> id = "dragFile" }
setOnDragDropped { event ->
if (event.dragboard.hasFiles()) {
event.isDropCompleted = true
handler(event.dragboard.files)
}
event.consume()
}
}
</code>
val drag = Pane().apply {
id = "dragFile"
layoutX = 28.0
layoutY = 58.0
val dragImage = ImageView().apply {
id = "drag"
fitWidth = 80.0
fitHeight = 80.0
layoutX = 60.0
layoutY = 20.0
}
val dragText = Label("text").apply {
id = "dragText"
layoutX = 29.0
layoutY = 100.0
}
children.addAll(dragImage, dragText)
setOnDragOver { event ->
if (event.dragboard.hasFiles()) {
event.acceptTransferModes(TransferMode.COPY)
}
event.consume()
}
setOnDragEntered { event ->
if (event.dragboard.hasFiles()) {
id = "dragFileActive"
}
event.consume()
}
setOnDragExited { _ -> id = "dragFile" }
setOnDragDropped { event ->
if (event.dragboard.hasFiles()) {
event.isDropCompleted = true
handler(event.dragboard.files)
}
event.consume()
}
}
I tried outputting a message to the console, even that didn’t work.
<code>setOnDragOver { println("drag over") }
setOnDragEntered { println("drag entered") }
setOnDragExited { println("drag exited") }
setOnDragDropped { println("drag drop") }
</code>
<code>setOnDragOver { println("drag over") }
setOnDragEntered { println("drag entered") }
setOnDragExited { println("drag exited") }
setOnDragDropped { println("drag drop") }
</code>
setOnDragOver { println("drag over") }
setOnDragEntered { println("drag entered") }
setOnDragExited { println("drag exited") }
setOnDragDropped { println("drag drop") }
New contributor
Kirill Nemtyrev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.