[英]Canvas3D not appearing in Swing window
我試圖在Swing JPanel中插入Canvas3D對象,但是代碼似乎無法正常工作(即什么也沒發生):
Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); SimpleUniverse universe = new SimpleUniverse(canvas); BranchGroup root = new BranchGroup(); root.addChild(new ColorCube()); universe.addBranchGraph(root); universe.getViewingPlatform().setNominalViewingTransform(); canvasPanel.add(canvas);
我想念什么? JPanel是使用NetBean的可視編輯器創建的。
可能您必須在面板上設置一個布局管理器,該管理器會自動將子組件擴展到整個區域。 JPanel默認具有FlowLayout,它不會擴展子組件。 您可以通過以下方式嘗試使用BorderLayout:
canvasPanel.setLayout(new BorderLayout());
Canvas3D需要傳遞一個尺寸; 從SimpleUniverse設置首選配置是不夠的。 就我而言,這意味着這段代碼:
// 3D canvas initialization Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); SimpleUniverse universe = new SimpleUniverse(canvas); BranchGroup root = new BranchGroup(); root.addChild(new ColorCube()); universe.addBranchGraph(root); universe.getViewingPlatform().setNominalViewingTransform(); canvas.setSize(100, 100); canvasPanel.add(canvas);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.