1

Swing JPanel 内に Canvas3D オブジェクトを挿入しようとしていますが、コードが機能していないようです (つまり、何も起こりません)。

        Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
        SimpleUniverse ユニバース = 新しい SimpleUniverse(キャンバス);
        BranchGroup ルート = 新しい BranchGroup();
        root.addChild(新しい ColorCube());
        Universe.addBranchGraph(ルート);
        Universe.getViewingPlatform().setNominalViewingTransform();
        canvasPanel.add(キャンバス);

私は何が欠けていますか?JPanel は、NetBeans の Visual Editor を使用して作成されました。

4

2 に答える 2

3

おそらく、子コンポーネントを全領域に自動的に拡張するレイアウト マネージャーをパネルに設定する必要があります。JPanel にはデフォルトで FlowLayout があり、子コンポーネントは展開されません。代わりに、次のように呼び出して BorderLayout を試すことができます。

canvasPanel.setLayout(new BorderLayout());
于 2008-10-17T05:04:47.100 に答える
0

Canvas3D にはサイズが渡される必要があります。SimpleUniverse から優先構成を設定するだけでは不十分です。私の場合、それはこのコードを意味しました:

        // 3D キャンバスの初期化
        Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
        SimpleUniverse ユニバース = 新しい SimpleUniverse(キャンバス);
        BranchGroup ルート = 新しい BranchGroup();
        root.addChild(新しい ColorCube());
        Universe.addBranchGraph(ルート);
        Universe.getViewingPlatform().setNominalViewingTransform();
        canvas.setSize(100, 100); 
        canvasPanel.add(キャンバス);
于 2008-10-17T03:32:47.333 に答える