1

当我从 JGraphX 包中运行 HelloWorld.java 示例并通过拖放来移动单元格时,我收到以下错误消息。

java.io.IOException:数据转换失败:在 sun.lwawt.macosx.CDataTransferer.translateTransferable(CDataTransferer.java:131) 在 sun.awt.datatransfer.DataTransferer.translateTransferable(DataTransferer.java:1293) 在 sun 不是图像格式.awt.datatransfer.DataTransferer$6.run(DataTransferer.java:2304) 在 java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701) 在 java .awt.EventQueue.access$000(EventQueue.java:102) 在 java.awt.EventQueue$3.run(EventQueue.java:662) 在 java.awt.EventQueue$3.run(EventQueue.java:660) 在 java.security .AccessController.doPrivileged(Native Method) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.security.ProtectionDomain$1。doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:676) at java.awt.EventQueue$4.run(EventQueue.java:674) at java.security.AccessController.doPrivileged(Native方法)在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:673) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) 在 java .awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) 在 java.awt.EventDispatchThread。 java.awt.EventDispatchThread 中的 pumpEvents(EventDispatchThread.java:139)。运行(EventDispatchThread.java:97)

我正在为 Mac 使用 Eclipse Juno 和 Java SE 7。我不明白它,也找不到任何解决它的方法。我真的陷入了绝望。请帮我。

先感谢您。

更新:HelloWorld.java 的代码

public class HelloWorld extends JFrame
{
    public HelloWorld()
    {
        super("Hello, World!");

        mxGraph graph = new mxGraph();
        Object parent = graph.getDefaultParent();

        graph.getModel().beginUpdate();
        try
        {
            Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80, 30);
            Object v2 = graph.insertVertex(parent, null, "World!", 240, 150, 80, 30);
            graph.insertEdge(parent, null, "Edge", v1, v2);
        }
        finally
        {
            graph.getModel().endUpdate();
        }

        mxGraphComponent graphComponent = new mxGraphComponent(graph);
        getContentPane().add(graphComponent);
    }

    public static void main(String[] args)
    {
        HelloWorld frame = new HelloWorld();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 320);
        frame.setVisible(true);
    }
}
4

2 回答 2

2

您可以通过将静态字段enableImageSupport设置为false来解决此问题。像这样 :com.mxgraph.swing.util.mxGraphTransferable.enableImageSupport = false;

来源:http: //jgraph.github.io/mxgraph/java/docs/com/mxgraph/swing/util/mxGraphTransferable.html#enableImageSupport

于 2014-03-07T11:41:11.873 回答
1

查看此错误报告,这似乎是 OS X 和某些 Java 版本所特有的。此示例在 OS X 10.8 上当前 Mac 提供的 JVM 上运行良好,即:

java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)
于 2012-08-23T21:17:27.343 回答