[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00200] Re: Java3D と Swingについて



◆『世界各国経済情報ファイル』「The World 98 CD-ROM」◆=========
      
     ★ 世界各国の経済・地理・社会の様々なデータを収録!
         ★ コピー&ペースト、ダウンロード機能でとっても便利!!
 
 <<節分特別セール 定価 6,800円 → 4,800円(税、送料込み)>>
   お問い合わせ先:日本データベース開発(株) kanzaki@xxxxxxxxxx 
============== http://www.ndk.co.jp/06SUBM/saisin.html ==============

>トップレベルに直接 add() するといかがでしょう。
># 時間あったらやってみましょうか。

結果はダメでした。

import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.behaviors.mouse.*;

class Test2 {

    public static void main( String[] args ) {
        JFrame frame = new JFrame( "Java3D Test2" );
        JDesktopPane desktop = new JDesktopPane();
        frame.getContentPane().add( desktop , BorderLayout.CENTER );
        frame.setSize( 500 , 500 );
        frame.setLocation( 100 , 100 );
        frame.setVisible( true );

        JIFrame f1 = new JIFrame( "Frame1" );
        f1.setBounds( 20 , 20 , 300 , 300 );
        desktop.add( f1 );
        f1.setVisible( true );

        JIFrame f2 = new JIFrame( "Frame2" );
        f2.setBounds( 100 , 100 , 300 , 300 );
        desktop.add( f2 );
        f2.setVisible( true );
    }
}

class JIFrame extends JInternalFrame {

    public JIFrame( String title ) {
        super( title );
        //JPanel panel = getJ3DPanel();

        setClosable( true );
        setMaximizable( true );
        setIconifiable( true );
        setResizable( true );
        //getContentPane().add( panel , BorderLayout.CENTER );
        getContentPane().add(new J3DApplet(), BorderLayout.CENTER );
    }

    //JPanel getJ3DPanel() {
    class J3DApplet extends java.applet.Applet {

      public J3DApplet() {
        //JPanel panel = new JPanel();

        setLayout(new BorderLayout());

        GraphicsConfiguration config =
           SimpleUniverse.getPreferredConfiguration();

        //Canvas3D canvas = new Canvas3D( null );
        Canvas3D canvas = new Canvas3D(config);
        add( "Center" , canvas );

        BranchGroup root = createSceneGraph();

        SimpleUniverse universe = new SimpleUniverse( canvas );

        universe.getViewingPlatform().setNominalViewingTransform();
        universe.addBranchGraph( root );

        //return panel;
      }
    }

    BranchGroup createSceneGraph() {

        BranchGroup objGroup = new BranchGroup();

        TransformGroup objTrans = new TransformGroup();
        Transform3D translation = new Transform3D();
        objTrans.setTransform( translation );

        Shape3D shape = new ColorCube( 0.5 );

        objTrans.addChild( shape );

        objTrans.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE );
        objTrans.setCapability( TransformGroup.ALLOW_TRANSFORM_READ );
        objGroup.addChild( objTrans );

        setMouseBehavior( objGroup , objTrans );

        return objGroup;
    }

    private void setMouseBehavior( BranchGroup root , TransformGroup trans ) {

        MouseBehavior behavior1 = new MouseRotate();
        behavior1.setTransformGroup( trans );
        root.addChild( behavior1 );
        MouseBehavior behavior2 = new MouseTranslate();
        behavior2.setTransformGroup( trans );
        root.addChild( behavior2 );
        MouseBehavior behavior3 = new MouseZoom();
        behavior3.setTransformGroup( trans );
        root.addChild( behavior3 );
        BoundingSphere bounds=new BoundingSphere( new Point3d( 0.0,0.0,0.0 ) , 100.0 );

        behavior1.setSchedulingBounds( bounds );
        behavior2.setSchedulingBounds( bounds );
        behavior3.setSchedulingBounds( bounds );
    }
}
------------------------------------------------------------------
遠藤靖之 (えんどう やすゆき) <yasuyuki@xxxxxxxxxx>
http://www.freepage.total.co.jp/jfriends/ (Java互助会ホームページ)
株式会社タイムインターメディア 情報通信サービス部 TEL 03-5362-9009
〒162-0065 新宿区住吉町3-11 新宿スパイアビル      FAX 03-5362-9008