0

我一直告诉自己这应该很简单,但我完全迷失了。让我首先说我是 NetBeans IDE 的新手,我使用它是出于必要。我还不是很了解它。

我已经成功地为我的应用程序设计了我的主窗口。应用程序的右侧本质上是一个通向三维空间的大窗口,可以可视化数据集上的某些转换。我搜索了调色板和调色板管理器,甚至尝试从 JAR 手动将 Canvas3D 组件添加到调色板,但我仍然无法获得它。

我真的很希望能够将这个组件拖放到我的应用程序中,直观地说,这似乎是可能的。我在 Mac OS X 上;我关于 NetBeans 的输出说明了更多信息。

产品版本:NetBeans IDE 6.7(内部版本 200906241340)
Java:1.5.0 _19;Java HotSpot(TM) Client VM 1.5.0 _19-137
系统:在 i386 上运行的 Mac OS X 版本 10.5.7;麦克罗曼;en_US (nb)
用户目录:/Users/dremelofdeath/.netbeans/6.7

提前感谢您帮助我 - 我真的很感激。

4

2 回答 2

1

Canvas3D 是一个重量级组件,这意味着它使用本机对等组件连接到 DirectX 或 OpenGL,因此这种组件可能无法用于拖放。虽然您可以尝试扩展 JPanel。

您可以使用 BoderLayout 轻松手动设置布局。

MyFrame extends JFrame {

etc...

 Container container = getContentPane();
 container.setName("main.container");
 container.setLayout(new BorderLayout());

 container.add(new MyCanvasPanel(), BorderLayout.CENTER);

}  

// this could probably be added to the palete
public class MyCanvasPanel extends JPanel {

    SimpleUniverse su;
    Canvas3D canvas3D;

  public MyCanvasPanel() {
        canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
        add("Center", canvas3D);
        su = new SimpleUniverse(canvas3D);
  }

}
于 2009-11-26T16:41:50.893 回答
0

完整的初学者指南:

  1. 将 java.awt.Container 添加到 JFrame。(选择 Beans\java.awt.Container)。让该容器的名称为 canvasContainer。
  2. 向类添加一个公共变量。(我假设类名是 MyJFrame)

    公共 Canvas3D canvas3D;

  3. 框架类的构造如下:

    公共 MyJFrame() {
    initComponents();
    }

    编辑如下:

    公共 MyJFrame() {
    initComponents();
    canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
    canvasContainer.add(canvas3D, "Center");
    canvas3D.setSize(canvasContainer.getWidth(), canvasContainer.getHeight());
    }

  4. 调整大小时给容器添加监听器:(通常在调整窗口大小时)
    选择容器\Properties\Events\componentResized\canvasContainerComponentResized
    键入以下代码:

    if (canvas3D!=null)
    canvas3D.setSize(canvasContainer.getWidth(), canvasContainer.getHeight());

于 2015-09-07T07:37:28.090 回答