2009-07-07 5 views
0

Ich sage mir immer wieder, dass dies einfach sein soll, und doch bin ich völlig verloren. Lassen Sie mich damit beginnen, dass ich neu in NetBeans IDE bin und dass ich es aus der Notwendigkeit heraus benutze. Ich weiß noch nicht viel darüber.Verwenden von NetBeans IDE 6.7 mit J3Ds Canvas3D Container

Ich habe erfolgreich mein Hauptfenster für meine Anwendung entworfen. Die rechte Seite der Anwendung ist im Wesentlichen ein großes Fenster in einen dreidimensionalen Raum, der bestimmte Transformationen auf Datensätzen visualisiert. Ich habe die Palette und den Palettenmanager durchsucht und sogar versucht, die Canvas3D-Komponente manuell aus einem JAR zu der Palette hinzuzufügen, aber ich kann sie immer noch nicht bekommen.

Ich würde wirklich gerne diese Komponente in meine Anwendung ziehen und ablegen können, und intuitiv scheint es möglich. Ich bin auf Mac OS X; Die Ausgabe von meinem About NetBeans erzählt mehr.

Produktversion: NetBeans IDE 6.7 (Build 200.906.241.340)
Java: 1.5.0 _ 19; Java HotSpot (TM) Client VM 1.5.0 _ 19-137
System: Mac OS X Version 10.5.7 läuft unter i386; MacRoman; de_DE (nb)
Userdir: /Users/dremelofdeath/.netbeans/6.7

Vielen Dank im Voraus für die Hilfe - ich schätze es sehr.

Antwort

1

Die Canvas3D ist eine schwergewichtige Komponente, was bedeutet, dass sie eine native Peer-Komponente verwendet, um sich in DirectX oder OpenGL einzuklinken. Daher ist diese Art von Komponente wahrscheinlich nicht für Drag and Drop verfügbar. Obwohl Sie versuchen könnten, ein JPanel zu erweitern.

Sie können das Layout manuell mit einem BoderLayout manuell einrichten.

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); 
    } 

} 
+0

Danke für den Rat. Keine vollständige Lösung, aber Sie haben mich in die richtige Richtung gezeigt. :) –

0

kompletter Anfänger Guide:

  1. hinzufügen java.awt.Container zum JFrame. (Wählen Sie Beans \ java.awt.Container). Lassen Sie den Namen dieses Containers canvasContainer sein.
  2. Fügen Sie der Klasse eine öffentliche Variable hinzu. (Ich nehme an, der Klassenname ist MyJFrame)

    öffentlich Canvas3D canvas3D;

  3. Der Aufbau der Rahmenklasse ist wie folgt:

    public MyJFrame() {
    initComponents();
    }

    bearbeiten sie wie folgt:

    öffentlichen MyJFrame() {
    initComponents();
    canvas3D = neu Canvas3D (SimpleUniverse.getPreferredConfiguration());
    canvasContainer.add (canvas3D, "Center");
    canvas3D.setSize (canvasContainer.getWidth(), canvasContainer.getHeight());
    }

  4. einen Zuhörer zum Container hinzufügen, wenn es geändert wird: (Oft, wenn die Fenstergröße verändert wird)
    die Container wählen \ Properties \ Event \ componentResized \ canvasContainerComponentResized
    Geben Sie den folgenden Code ein:

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