Canvas3D没有出现在Swing窗口中
我试图在Swing JPanel中插入一个Canvas3D对象,但代码似乎没有工作(即没有任何反应):
Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); SimpleUniverse universe = new SimpleUniverse(canvas); BranchGroup root = new BranchGroup(); root.addChild(new ColorCube()); universe.addBranchGraph(根); universe.getViewingPlatform()setNominalViewingTransform(); canvasPanel.add(帆布);
我错过了什么? JPanel是使用NetBean的Visual Editor创建的。
您可能需要在面板上设置布局管理器,这会自动将子组件扩展到整个区域。 默认情况下,JPanel有一个FlowLayout,它不会扩展子组件。 您可以通过调用以下方法尝试BorderLayout:
canvasPanel.setLayout(new BorderLayout());
Canvas3D需要传递给它的大小; 从SimpleUniverse设置首选配置是不够的。 就我而言,这意味着这段代码:
// 3Dcanvas初始化 Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); SimpleUniverse universe = new SimpleUniverse(canvas); BranchGroup root = new BranchGroup(); root.addChild(new ColorCube()); universe.addBranchGraph(根); universe.getViewingPlatform()setNominalViewingTransform(); canvas.setSize(100,100); canvasPanel.add(帆布);