【问题标题】:Drag Drop Swing to JavaFX not working without debug mode将 Drop Swing 拖放到 JavaFX 在没有调试模式的情况下无法工作
【发布时间】: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


    【解决方案1】:

    似乎与Java缓存有关。 清除 Java Control 中的所有缓存后,代码可以正常运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 2017-08-07
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      相关资源
      最近更新 更多