1

JGraphX パッケージから HelloWorld.java の例を実行し、セルをドラッグ アンド ドロップして移動すると、次のエラー メッセージが表示されます。

java.io.IOException: データ変換に失敗しました: sun.lwawt.macosx.CDataTransferer.translateTransferable(CDataTransferer.java:131) の sun.awt.datatransfer.DataTransferer.translateTransferable(DataTransferer.java:1293) のイメージ形式ではありません。 .awt.datatransfer.DataTransferer$6.run(DataTransferer.java:2304) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) で java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701) で.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) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) で java.awt.EventQueue$4.run(EventQueue.java:676) で java.awt.EventQueue$4.run(EventQueue.java:674) で java.security.AccessController.doPrivileged(Native Method) で java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) で java.awt.EventQueue.dispatchEvent(EventQueue.java:673) で java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) で.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)

私は Eclipse Juno と Java SE 7 for Mac を使用しています。私はそれを理解していないし、それを解決するものを見つけることができません。本当に絶望します。私を助けてください。

前もって感謝します。

更新: 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

static フィールドenableImageSupportfalseに設定することで回避できます。このような :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 バージョンに固有のもののようです。この例は、現在 Mac が提供する OS X 10.8 上の 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 に答える