Java3D in ein JPanel integrieren mit Netbeans 6.8

Silentday

Mitglied
Hallo Leute,

ich steh vor einem großen Problem. Ich will eine 3D Visualisierung, die von einem Kollegen implementiert wurde in meine GUI integrieren. Ziel ist es das ich sie in ein JPanel bekomme.

Die Visualisierung verwendet einen Graphen zur Darstellung von Beziehungen zwischen Personen mit Knoten und Kanten.

Die Visualisierung hatte er derweil als eigenständige Klasse (als Applet) geschrieben, doch nun soll sie halt in meine SWING - Oberfläche integriert werden.

Muss ich da vielleicht was mit einem AWT Canvas machen oder nur das JPanel erweitern oder ... ??? keine ahnung. habe shcon stunden mit der suche verbracht.

Ich verwende Netbeans 6.8 und habe nicht wirklich einen Plan von Java3D.

Der Code zum Graphen (Visualisierung) lautet:


Java:
package java3d;

import app.Edge;
import app.Graph;
import app.Person;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GraphicsConfiguration;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Vector;

import javax.media.j3d.AmbientLight;
import javax.media.j3d.Appearance;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Geometry;
import javax.media.j3d.LineArray;
import javax.media.j3d.Material;
import javax.media.j3d.Node;
import javax.media.j3d.Font3D;
import javax.media.j3d.PickInfo;
import javax.media.j3d.Shape3D;
import javax.media.j3d.Text3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Point3f;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;
import com.sun.j3d.utils.behaviors.mouse.MouseZoom;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.geometry.Cone;
import com.sun.j3d.utils.geometry.Primitive;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.pickfast.PickCanvas;
import com.sun.j3d.utils.pickfast.behaviors.PickTranslateBehavior;
import com.sun.j3d.utils.picking.PickResult;
import com.sun.j3d.utils.universe.SimpleUniverse;


public class VisualFunctions extends Applet implements MouseListener {



	private static final long serialVersionUID = 1L;
	private PickCanvas pickCanvas;
	private Vector<Vector> vec = new Vector<Vector>();
	Graph<Person> gr;
	TransformGroup root;


	public VisualFunctions(Graph<Person> graph){

		gr = graph;
		setLayout(new BorderLayout());
	 GraphicsConfiguration config =
		 SimpleUniverse.getPreferredConfiguration();
		 Canvas3D canvas3D = new Canvas3D(config);
		 add("Center", canvas3D);

		 BranchGroup scene = createSceneGraph(graph,canvas3D);
		 scene.compile();

		 SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
		 simpleU.getViewingPlatform().setNominalViewingTransform();

		 simpleU.addBranchGraph(scene);
		}


	public BranchGroup createSceneGraph(Graph<Person> graph,Canvas3D canvas3D) {
		 // Create the root of the branch graph
		 BranchGroup objRoot = new BranchGroup();

		/* objRoot.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
		 objRoot.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
		 objRoot.setCapability(Shape3D.ALLOW_APPEARANCE_READ);
		 objRoot.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
		 */

		 TransformGroup rootTrans = new TransformGroup();
		 objRoot.addChild(rootTrans);
		 rootTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		 rootTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
		 rootTrans.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
		 rootTrans.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
		 rootTrans.setCapability(TransformGroup.ALLOW_CHILDREN_READ);
		 rootTrans.setCapability(Shape3D.ALLOW_APPEARANCE_READ);
		 rootTrans.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);



		 MouseRotate myMouseRotate = new MouseRotate();
		 myMouseRotate.setTransformGroup(rootTrans);
		 myMouseRotate.setSchedulingBounds(new BoundingSphere());
		 rootTrans.addChild(myMouseRotate);

		 Appearance appearance = new Appearance();
		 Appearance appearance2 = new Appearance();


		 Color3f red = new Color3f(1.0f, 0.0f, 0.0f);
		 Color3f blue = new Color3f(0,0,255);
		 Color3f white = new Color3f(255,255,255);
		 Color3f yellow = new Color3f(255,255,0);
		 appearance2.setMaterial(new Material(yellow,yellow,red,yellow,8.0f));
		 appearance.setMaterial(new Material(blue,blue,blue,red, 8.0f));
		 BoundingSphere behaveBounds = new BoundingSphere();

		 Transform3D rotate = new Transform3D();
		Transform3D translate = new Transform3D();


		//PICK ZEUGS

		pickCanvas = new PickCanvas(canvas3D, objRoot);

	    pickCanvas.setMode(PickCanvas.TYPE_SHAPE3D);
	    canvas3D.addMouseListener(this);

	    MouseZoom myMouseZoom = new MouseZoom();
		 myMouseZoom.setTransformGroup(rootTrans);
		 myMouseZoom.setSchedulingBounds(new BoundingSphere());
		 rootTrans.addChild(myMouseZoom);

		 MouseRotate myMouseRotatee = new MouseRotate();
		 myMouseRotatee.setTransformGroup(rootTrans);
		 myMouseRotatee.setSchedulingBounds(new BoundingSphere());
		 rootTrans.addChild(myMouseRotatee);


		for(Person p: graph.getNodes()){

			float x = (float) (Math.random()*(0.6 + 0.6)- 0.6);
		    float y = (float) (Math.random()*(0.6 + 0.6)- 0.6);
		    float z = (float) (Math.random()*(0.6 + 0.6)- 0.6);

			Vector3f v3f = new Vector3f(x,y,z);
		translate.setTranslation(v3f);
		//rotate.rotY(Math.PI/4.0d);
		//rotate.mul(translate);
		rotate.setTranslation(v3f);
		 ColorCube cb = new ColorCube(0.01);
		 TransformGroup objRotate = new TransformGroup(rotate);
		 objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		 objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
		 objRotate.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
		 objRotate.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
		 objRotate.setCapability(TransformGroup.ALLOW_CHILDREN_READ);
		 //objRoot.addChild(drawLine(v3f, new Vector3f(0.01f,0.01f,0.01f),red, 0.01));


	/*	 Text3D text = new Text3D();
		 text.setString(p.getName());
		 text.setPosition(new Point3f(x,y,z));
		 //objRoot.addChild((Shape3D)text);
		 */


		 if(p.getType()==0){

			 Sphere sphere = new Sphere((float) 0.08,  appearance2);
			 sphere.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
			 sphere.setCapability(Shape3D.ALLOW_APPEARANCE_READ);
			 sphere.setCapability(Shape3D.ALLOW_APPEARANCE_OVERRIDE_WRITE);
			 sphere.setCapability(Shape3D.ALLOW_APPEARANCE_OVERRIDE_READ);
			 sphere.setCapability(Node.ENABLE_PICK_REPORTING);
			// sphere.setCapability(Primitive.ENABLE_APPEARANCE_MODIFY);


			 objRotate.addChild(sphere);

			 Vector triple = new Vector();
			 triple.add(p);
			 triple.add(sphere);
			 triple.add(v3f);
			 vec.add(triple);

		 }else{
			Cone cone = new Cone(0.1f,0.15f,  appearance);

			cone.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
			cone.setCapability(Shape3D.ALLOW_APPEARANCE_READ);
			cone.setCapability(Shape3D.ALLOW_APPEARANCE_OVERRIDE_WRITE);
			cone.setCapability(Shape3D.ALLOW_APPEARANCE_OVERRIDE_READ);
			cone.setCapability(Node.ENABLE_PICK_REPORTING);
			cone.setCapability(Primitive.ENABLE_APPEARANCE_MODIFY);
            //cone.setPerson(p);
			 objRotate.addChild(cone);

			 Vector triple = new Vector();
			 triple.add(p);
			 triple.add(cone);
			 triple.add(v3f);
			 vec.add(triple);
		 }


		 AmbientLight aLight = new AmbientLight(white);
		 BoundingSphere bounds = new BoundingSphere
		 (new Point3d(), 100000);
		 aLight.setInfluencingBounds(bounds);
		 DirectionalLight dLight = new DirectionalLight
		 (new Color3f(255,255,0), new Vector3f(-0.5f, -0.5f, -0.5f));
		 dLight.setInfluencingBounds(bounds);
		objRoot.addChild(aLight);
		 objRoot.addChild(dLight);
		 // Create a simple shape leaf node, add it to the scene graph.
		 // ColorCube is a Convenience Utility class
		 rootTrans.addChild(objRotate);

		 PickTranslateBehavior pickTranslate = new PickTranslateBehavior(objRoot,canvas3D, behaveBounds);
		 objRotate.addChild(pickTranslate);

		}

		for(Edge e : graph.getEdges()){

			Vector3f v31 = null;
			Vector3f v32 = null;

			float[] f1 = new float[3];
			float[] f2 = new float[3];

			for(Vector v:vec){

				if(v.contains(e.get(0))){
					v31 = getPosition((Node)v.get(1));
				}

				else if(v.contains(e.get(1))){
					v32 = getPosition((Node)v.get(1));
				}
			}

			v31.get(f1);
			v32.get(f2);

			Appearance appe = new Appearance();
			ColoringAttributes Coloring = new ColoringAttributes();



			if(((Person) e.get(0)).getType() + ((Person) e.get(1)).getType() == 0){

				Coloring.setColor(red);
				appe.setColoringAttributes(Coloring);

			}
			else if(((Person) e.get(0)).getType() + ((Person) e.get(1)).getType() == 1){
				Coloring.setColor(blue);
				appe.setColoringAttributes(Coloring);
				}
			else{
				Coloring.setColor(yellow);
				appe.setColoringAttributes(Coloring);
			}

			Point3f[] plaPts = new Point3f[2];
		    plaPts[0] = new Point3f(f1[0], f1[1], f1[2]);
		    plaPts[1] = new Point3f(f2[0], f2[1], f2[2]);
		    LineArray pla = new LineArray(2, LineArray.COORDINATES);
		    pla.setCoordinates(0, plaPts);
		    Shape3D plShape = new Shape3D(pla, appe);
		    rootTrans.addChild(plShape);
		}

		/* MouseRotate myMouseRotate = new MouseRotate();
		 myMouseRotate.setTransformGroup(rootTrans);
		 myMouseRotate.setSchedulingBounds(new BoundingSphere());
		 rootTrans.addChild(myMouseRotate);
		objRoot.addChild(rootTrans); */

		root = rootTrans;
		objRoot.compile();
		 return objRoot;
		 }


	public Vector3f getPosition(Node shape)
    {
        Transform3D positionTrans = new Transform3D();
        shape.getLocalToVworld(positionTrans);

        Vector3f locationVec = new Vector3f();
        positionTrans.get(locationVec);

        float[] flo = new float[3];
        locationVec.get(flo);
        System.out.print(flo[0] + " ");
        System.out.print(flo[1] + " ");
        System.out.println(flo[2]);

        return locationVec;
    }




	public static void main (String[] args) {

		Person p1 = new Person(0, "Hans", "Maier", "12");
		Person p2 = new Person(1, "Peter", "Huber", "13");
		Person p3 = new Person(0,"Thomas", "Bauer", "14");
		Person p4 = new Person(1, "Dominik", "Imsirovic", "15");

		p2.addAttribut("mobil", "06761111");

		Edge<Person> e = new Edge<Person>(p1,p2);
		Edge<Person> e2 = new Edge<Person>(p2,p3);
		Edge<Person> e3 = new Edge<Person>(p3,p4);
		Edge<Person> e4 = new Edge<Person>(p2,p4);

		Vector<Person> v = new Vector<Person>();

		v.add(p1);
		v.add(p2);
		v.add(p3);
		v.add(p4);
		Vector<Edge<Person>> edges = new Vector<Edge<Person>>();
		edges.add(e);
		edges.add(e2);
		edges.add(e3);
		edges.add(e4);

		Graph<Person> graph = new Graph<Person>(v,edges);

		Frame frame = new MainFrame(new VisualFunctions(graph), 256, 256);
		}


	public void mouseClicked(MouseEvent e)

	{

	    pickCanvas.setShapeLocation(e);

	    PickInfo result = pickCanvas.pickClosest();

	    if (result == null) {

	       System.out.println("Nothing picked");

	    } else {

	    	getPosition((Node) result.getNode());

	    	for(Vector v : vec){
	    		if (((Geometry)v.get(1)).equals(((Shape3D)result.getNode()).getGeometry())){
	    			System.out.println(((Person)v.get(0)).getName());
	    		}
	    	}

	    //	System.out.println(((SpherePerson)((Shape3D)result.getNode()).getGeometry()).getPerson().getName());


			}



	      // Primitive p = (Primitive)result.getNode();

        	       //Shape3D s = (Shape3D)result.getNode();

	       //if (p != null) {

	         // System.out.println(p.getClass().getName());

	       /*} else */ /*if (result.getNode() != null) {

	    	   Appearance newapp = new Appearance();
	    	   Color3f white = new Color3f(255,255,255);

	    	   newapp.setMaterial(new Material(white,white,white,white,0.8f));

	    	   Appearance appii = new Appearance();
	    	   Color3f bu = new Color3f(0,0,255);

	    	   appii.setMaterial(new Material(bu,bu,bu,bu,0.8f));
	             System.out.println(result.getNode().getClass().getName());

	             if(result.getNode() instanceof Shape3D){
	             //((Shape3D) result.getNode()).setAppearance(newapp);


	             //((Shape3D) result.getNode()).setAppearance(appii);
	             }

	       } else{

	          System.out.println("null");

	       }*/

	    }





	@Override
	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}


	@Override
	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}


	@Override
	public void mousePressed(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}


	@Override
	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}


}



Bitte um schnelle Hilfe da ich bis morgen dieses Problem gelöst haben muss :(
 

Marco13

Top Contributor
Am Anfang vielleicht sowas in der Richtung...
Java:
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                JFrame frame = new JFrame();
                frame.getContentPane().setLayout(new BorderLayout());
                VisualFunctions v = new VisualFunctions();
                frame.getContentPane().add(v.getCanvas(), BorderLayout.CENTER);
                frame.setSize(500,500);
                frame.setVisible(true);
            }
        });
    }
    
    private Canvas3D canvas3D;
    
    public Canvas3D getCanvas()
    {
        return canvas3D;
    }
    
    public VisualFunctions()
    {
        GraphicsConfiguration config = SimpleUniverse
            .getPreferredConfiguration();
        canvas3D = new Canvas3D(config);

...

Swing und AWT (Canvas3D) mischen kann aber unerwünschte Effekte nach sich ziehen (Übermalen von Swing-Components und so...)
 

Silentday

Mitglied
Hy danke Marco für die schnele Antwort!

ich bräuchte eher was in die richtung.

hier ist der Code von einem kleinen Fenster das aus einem Menü einem TexArea und einem JPanel bestet.

ich hätte die visualisierung (Java3d) gerne im JPanel


lg
Java:
 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewApplication.java
 *
 * Created on 01.06.2010, 17:46:20
 */

package gui;

/**
 *
 * @author Schatzi
 */
public class NewApplication extends javax.swing.JFrame {

    /** Creates new form NewApplication */
    public NewApplication() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jFrame1 = new javax.swing.JFrame();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        menuBar = new javax.swing.JMenuBar();
        fileMenu = new javax.swing.JMenu();
        openMenuItem = new javax.swing.JMenuItem();
        exitMenuItem = new javax.swing.JMenuItem();
        editMenu = new javax.swing.JMenu();
        cutMenuItem = new javax.swing.JMenuItem();
        copyMenuItem = new javax.swing.JMenuItem();
        pasteMenuItem = new javax.swing.JMenuItem();
        deleteMenuItem = new javax.swing.JMenuItem();
        helpMenu = new javax.swing.JMenu();
        contentsMenuItem = new javax.swing.JMenuItem();
        aboutMenuItem = new javax.swing.JMenuItem();

        jFrame1.setName("jFrame1"); // NOI18N

        javax.swing.GroupLayout jFrame1Layout = new javax.swing.GroupLayout(jFrame1.getContentPane());
        jFrame1.getContentPane().setLayout(jFrame1Layout);
        jFrame1Layout.setHorizontalGroup(
            jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        jFrame1Layout.setVerticalGroup(
            jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setName("Form"); // NOI18N

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
        jPanel1.setName("jPanel1"); // NOI18N

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 204, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 244, Short.MAX_VALUE)
        );

        jPanel2.setName("jPanel2"); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 0, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 257, Short.MAX_VALUE)
        );

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jTextArea1.setName("jTextArea1"); // NOI18N
        jScrollPane1.setViewportView(jTextArea1);

        menuBar.setName("menuBar"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(gui.mfbMain.class).getContext().getResourceMap(NewApplication.class);
        fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
        fileMenu.setName("fileMenu"); // NOI18N

        openMenuItem.setText(resourceMap.getString("openMenuItem.text")); // NOI18N
        openMenuItem.setName("openMenuItem"); // NOI18N
        fileMenu.add(openMenuItem);

        exitMenuItem.setText(resourceMap.getString("exitMenuItem.text")); // NOI18N
        exitMenuItem.setName("exitMenuItem"); // NOI18N
        exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitMenuItemActionPerformed(evt);
            }
        });
        fileMenu.add(exitMenuItem);

        menuBar.add(fileMenu);

        editMenu.setText(resourceMap.getString("editMenu.text")); // NOI18N
        editMenu.setName("editMenu"); // NOI18N

        cutMenuItem.setText(resourceMap.getString("cutMenuItem.text")); // NOI18N
        cutMenuItem.setName("cutMenuItem"); // NOI18N
        editMenu.add(cutMenuItem);

        copyMenuItem.setText(resourceMap.getString("copyMenuItem.text")); // NOI18N
        copyMenuItem.setName("copyMenuItem"); // NOI18N
        editMenu.add(copyMenuItem);

        pasteMenuItem.setText(resourceMap.getString("pasteMenuItem.text")); // NOI18N
        pasteMenuItem.setName("pasteMenuItem"); // NOI18N
        editMenu.add(pasteMenuItem);

        deleteMenuItem.setText(resourceMap.getString("deleteMenuItem.text")); // NOI18N
        deleteMenuItem.setName("deleteMenuItem"); // NOI18N
        editMenu.add(deleteMenuItem);

        menuBar.add(editMenu);

        helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
        helpMenu.setName("helpMenu"); // NOI18N

        contentsMenuItem.setText(resourceMap.getString("contentsMenuItem.text")); // NOI18N
        contentsMenuItem.setName("contentsMenuItem"); // NOI18N
        helpMenu.add(contentsMenuItem);

        aboutMenuItem.setText(resourceMap.getString("aboutMenuItem.text")); // NOI18N
        aboutMenuItem.setName("aboutMenuItem"); // NOI18N
        helpMenu.add(aboutMenuItem);

        menuBar.add(helpMenu);

        setJMenuBar(menuBar);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>

    private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                             
        System.exit(0);
    }                                            

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewApplication().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JMenuItem aboutMenuItem;
    private javax.swing.JMenuItem contentsMenuItem;
    private javax.swing.JMenuItem copyMenuItem;
    private javax.swing.JMenuItem cutMenuItem;
    private javax.swing.JMenuItem deleteMenuItem;
    private javax.swing.JMenu editMenu;
    private javax.swing.JMenuItem exitMenuItem;
    private javax.swing.JMenu fileMenu;
    private javax.swing.JMenu helpMenu;
    private javax.swing.JFrame jFrame1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JMenuItem openMenuItem;
    private javax.swing.JMenuItem pasteMenuItem;
    // End of variables declaration

}
 

Marco13

Top Contributor
Ohne das jetzt durchgelesen oder getestet zu haben:
Java:
VisualFunctions v = new VisualFunctions();
Component canvas = v.getCanvas();
woAuchImmerDuDenHinzufügenWillst.add(canvas);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Java3D, ViewP Translattform soll sich nach einerformgroup richten. AWT, Swing, JavaFX & SWT 5
S Java3D: Ikosaeder mit unterschiedlich gefärbten Flächen AWT, Swing, JavaFX & SWT 3
K Fullscreen Java3D AWT, Swing, JavaFX & SWT 5
T 3D-Grafik (Java3D) Aus einem Objekt einer Szene (Würfel, Ebene) die wichtigen Randkoordinaten auslesen AWT, Swing, JavaFX & SWT 3
T Erstellung einer ShadowMap mit Java3D AWT, Swing, JavaFX & SWT 6
S Hilfe beim Lernprozess von java3d AWT, Swing, JavaFX & SWT 20
K 3D-Grafik Textur Java3d AWT, Swing, JavaFX & SWT 5
S 3D-Grafik Grafikprogramm mit Java3D AWT, Swing, JavaFX & SWT 14
B 3D-Grafik Punkt in JAVA3D darstellen AWT, Swing, JavaFX & SWT 2
B Java3D Szenegraph Export als VRML, .X3D, .OBJ, .POV, U3D oder PLY AWT, Swing, JavaFX & SWT 4
E Java3D im FSEM AWT, Swing, JavaFX & SWT 5
K Java3D - Startposition ? AWT, Swing, JavaFX & SWT 5
M 3D-Grafik Java3D-Application als executable .jar exportieren (Eclipse) AWT, Swing, JavaFX & SWT 5
I 3D-Grafik Java3D RAM AWT, Swing, JavaFX & SWT 3
S 3D-Grafik Java3D und was noch? AWT, Swing, JavaFX & SWT 3
E 3D-Grafik Java3D AWT, Swing, JavaFX & SWT 5
T Java3D - Picking AWT, Swing, JavaFX & SWT 12
L 3D-Grafik Java3D - Alle SceneGraphObjects geordnet erhalten AWT, Swing, JavaFX & SWT 2
S Java3D: Alle Objekte in BranchGroup löschen während Laufzeit AWT, Swing, JavaFX & SWT 3
C java3D - sichtbare Kanten eines Shape3D AWT, Swing, JavaFX & SWT 2
P Zwei JPanel übereianderlegen AWT, Swing, JavaFX & SWT 14
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
M clear JPanel before repainting AWT, Swing, JavaFX & SWT 1
B ImageIcon auf JPanel austauschen AWT, Swing, JavaFX & SWT 3
T Swing Reload JPanel + darin liegende ProgressBar AWT, Swing, JavaFX & SWT 9
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
F JPanel Celleditor AWT, Swing, JavaFX & SWT 8
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
CptK Funktionsgraphen effizient zeichnen und nur Teile von JPanel erneuern AWT, Swing, JavaFX & SWT 2
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
Ich lerne Java. Swing Von JPanel A auf JPanel B zugreifen. AWT, Swing, JavaFX & SWT 4
A JPanel austauschen und Focus geben AWT, Swing, JavaFX & SWT 3
E Auf JPanel malen und davor JComponenten anzeigen AWT, Swing, JavaFX & SWT 12
L JComponent aus JPanel anhand Mausposition ermitteln AWT, Swing, JavaFX & SWT 10
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
B Verschiebbares JPanel "ruckelt" im Randbereich AWT, Swing, JavaFX & SWT 2
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
Hatsi09 Swing JPanel Bild einfügen AWT, Swing, JavaFX & SWT 14
L JPanel zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 1
dereki2000 JPanel mit Rückgbe wie bei JOptionPane AWT, Swing, JavaFX & SWT 3
E Hintergrundfarbe setzen in JPanel funktioneirt nicht AWT, Swing, JavaFX & SWT 4
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
S Nach scrollen verschwindet das zuvor im JPanel gezeichnete AWT, Swing, JavaFX & SWT 2
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
D Platzierung von JTextfield in JPanel AWT, Swing, JavaFX & SWT 3
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Zwei JPanel übereinander nur vorderes "repainten" AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel wird in JScollPane nicht angezeigt AWT, Swing, JavaFX & SWT 2
it_is_all JPanel verschwindet nach Button-Klick AWT, Swing, JavaFX & SWT 2
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JPanel rotieren, Bild ist abgeschnitten, Clipping? AWT, Swing, JavaFX & SWT 0
M Swing JPanel flüssig verschieben AWT, Swing, JavaFX & SWT 5
G Nur ein JPanel wird angezeigt AWT, Swing, JavaFX & SWT 9
kilopack15 JPanel im laufenden Zustand einfärben AWT, Swing, JavaFX & SWT 2
kilopack15 JPanel Farbverwaltung AWT, Swing, JavaFX & SWT 1
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
L JPanel zeichnet im Konstrukter erzeugten Hintergrund nicht AWT, Swing, JavaFX & SWT 10
Java_RY wie kann ich auf JButtons in einem JPanel zugreifen AWT, Swing, JavaFX & SWT 3
F Zeichnung einem JPanel im Layoutmanager zuweisen AWT, Swing, JavaFX & SWT 3
Meeresgott Swing Umgang mit JPanel AWT, Swing, JavaFX & SWT 4
R 2D-Grafik PNG Bild per Graphics auf JPanel AWT, Swing, JavaFX & SWT 9
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
W Swing JPanel nur einmal nach mehreren Änderungen neu zeichnen AWT, Swing, JavaFX & SWT 1
J Swing Zeichenfläche im JPanel des Haupfenster anzeigen lassen AWT, Swing, JavaFX & SWT 4
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
R JPanel überzeichnet alles? AWT, Swing, JavaFX & SWT 1
D Von JPanel auf anderes JPanel zugreifen AWT, Swing, JavaFX & SWT 9
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
I JPanel - Verwaltung/ Anordnung AWT, Swing, JavaFX & SWT 4
T JComponents zur Laufzeit auf JPanel darstellen AWT, Swing, JavaFX & SWT 10
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
J Linien auf JPanel zeichnen AWT, Swing, JavaFX & SWT 3
L ImageIcon auf JPanel wird nicht angezeigt(keiner Fehlermeldung) AWT, Swing, JavaFX & SWT 11
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
T JTextField Array im JPanel wird nicht komplett angezeigt AWT, Swing, JavaFX & SWT 7
K Swing JPanel ueber komplette Form legen AWT, Swing, JavaFX & SWT 1
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
R Komponenten von JPanel bleiben unsichtbar AWT, Swing, JavaFX & SWT 2
O JTabeddpane aber jedes JPanel als eigene Klasse anlegen AWT, Swing, JavaFX & SWT 7
llabusch Linien in JPanel zeichnen AWT, Swing, JavaFX & SWT 6
I (JPanel) paintComponent mit Zeitverschiebung (Sleep/Wait) AWT, Swing, JavaFX & SWT 1
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
S jpanel anchor bottom AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben