Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

javafx 2.1: Drag and Drop issue (Mac)

921851May 28 2012 — edited May 29 2012
Hi all,

As I related in other question I've posted here today, I'm having some problems when running my code which worked on windows now that I'm on a mac. This one is related to drag and drop, it used to work on windows (Write once, debug everywhere!) but now the onDragDropped event is not being fired. Here's the code. Any help is appreciated. Thanks in advance


HRWindowGridPane.setOnDragEntered(new EventHandler<DragEvent>() {


@Override
public void handle(DragEvent event) {
System.out.println("Drag entered");
lblPhoto.setEffect(finalBlend);
event.consume();
}
});

HRWindowGridPane.setOnDragExited(new EventHandler<DragEvent>() {

@Override
public void handle(DragEvent event) {
lblPhoto.setEffect(null);
System.out.println("Drag exited");
event.consume();
}
});

EventHandler<DragEvent> onDragOver = new EventHandler<DragEvent>() {
public void handle(DragEvent event) {
/* data is dragged over the target */
/* accept it only if it is not dragged from the same node
* and if it has a string data */
if (event.getGestureSource() != HRWindowGridPane &&
event.getDragboard().hasFiles()) {
/* allow for both copying and moving, whatever user chooses */
event.acceptTransferModes(TransferMode.ANY);
System.out.println("Drag over");
}

event.consume();
}
};
HRWindowGridPane.setOnDragOver(onDragOver);

HRWindowGridPane.setOnDragDropped(new EventHandler<DragEvent>()
{

@Override
public void handle(DragEvent event)
{
System.out.println("Drag dropping");
Dragboard db = event.getDragboard();
System.out.println("Drag dropped: got dragboard from event!");

if(db.hasFiles())
{
System.out.println("Drag dropped: dragboard has files!");
for(File file:db.getFiles())
{
if(file.getName().contains(".jpg") || file.getName().contains(".jpeg") || file.getName().contains(".JPG"))
{
Image img;
try
{
System.out.println("Everything is fine until image processing... hmmm");
img = new Image(file.toURI().toURL().toString(), 118.0, 88.0, false, true);
ImageView view = new ImageView(img);
view.setFitWidth(118.0);
view.setFitHeight(88.0);
view.resize(118.0, 88.0);
lblPhoto.setGraphic(view);
avatarImage = file;
}
catch (IOException e)
{
e.printStackTrace();
}

}
else
{
AlertWindow alert = new AlertWindow("Falha", "O Arquivo não é uma imagem JPG válida");
try
{
Stage stage = new Stage();

alert.start(stage);

stage.toFront();
HRWindowGridPane.toBack();
stage.centerOnScreen();
stage.show();

} catch (Exception e) {
e.printStackTrace();
}
}

}


}

event.setDropCompleted(true);
event.consume();
}

});

HRWindowGridPane.setOnDragDone(new EventHandler<DragEvent>() {

@Override
public void handle(DragEvent event)
{
System.out.println("Drag done");
}
});
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 26 2012
Added on May 28 2012
1 comment
221 views