【发布时间】:2019-06-14 15:35:45
【问题描述】:
我有一个从 Swing 应用程序获取 Drag 事件的代码。然后代码将元素放入 JavaFX TableView。
如果我在调试模式下运行,此代码可以完美运行。但是如果我用完 Debug 就不行了。
private static final DataFormat customFormat = new DataFormat("application/x-java-serialized-object");
this.setOnDragOver(new EventHandler<DragEvent>() {
public void handle(DragEvent event) {
event.acceptTransferModes(TransferMode.ANY);
event.consume();
}
});
this.setOnDragDropped(new EventHandler<DragEvent>() {
public void handle(DragEvent event) {
try {
Dragboard db = event.getDragboard();
if (db == null) {
alertInfo();
} else {
MyClassObject res = (MyClassObject) db.getContent(customFormat);
// do stuffs
} catch (Exception e) {
LOGGER.error(e.getMessage());
} finally {
event.setDropCompleted(true);
event.consume();
}
}
}
我知道错误出现在“MyClassObject res = (MyClassObject) db.getContent (customFormat);”中行,因为失败时的返回异常是“java.lang.String can't be cast to MyClassObject”。
但是,在调试中不会发生此错误。选角成功!
有人经历过吗?
【问题讨论】:
标签: javafx drag-and-drop