[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01128] ボタンイベント
■■ コンテンツ販売サイト LivLib今すぐクリック!→ http://www.livlib.com ■■
年賀状、クリスマスデザインと小説、画集を販売! 辰年向けの龍デザインや当社
マスコット、パンツうさぎのサンタクロース画像などを新発売。
雑誌「シャレード」でもおなじみの佐伯薫著の新撰組、学園JUNE小説や懐かしい
雰囲気の「小豆島物語」、ユニークなSF短編集「仮想空間生活」など、冬の夜長に
お楽しみいただけます。日展で活躍中の高山知也画伯の画集なども絶賛発売中!
■■ 年賀状・クリスマス・画集コンテンツ販売サイト http://www.livlib.com ■■
うおたにです.
前回質問いたしました,視点の移動のことですが,
それはまた別に書かせていただこうと思います..
本日は,ボタンイベントについて質問があります.
ボタンを押すことによって,zoomやrotateなどの機能を有効にするといった風にしたいのですが,
ボタンを押す押さないに関わらず,zoomの機能が有効になってしまいます.
また,ボタンのラベルも変わるのですが,一度押すとそのは後変化しなくなりました.
一度押した後に,初期化といった作業をする必要があるのでしょうか?
ソースを一緒に載せておきますので,よろしくお願いします.
---------------------------------------------------------------
01 import java.awt.*;
02 import java.awt.event.*;
03 import javax.media.j3d.*;
04 import javax.vecmath.*;
05 import com.sun.j3d.utils.applet.MainFrame;
06 import com.sun.j3d.utils.universe.*;
07 import com.sun.j3d.utils.geometry.*;
08 import com.sun.j3d.utils.behaviors.mouse.*;
09
10 public class Browser extends Frame {
11 private MouseZoom mz=null;
12
13 public Browser(){
14 this.setLayout(new BorderLayout());
15 Panel p = new Panel();
16 p.setLayout( new GridLayout(1,1) );
17 this.add(p, "South");
18
19 final Button b=new Button("zoom");
20 b.addActionListener(new ActionListener(){
21 public void actionPerformed(ActionEvent e){
22 String blabel=b.getLabel();
23 if(blabel.equals("zoom")){
24 mz.setEnable(true);
25 b.setLabel("default");
26 }
27 else if (b.equals("default")){
28 mz.setEnable(false);
29 b.setLabel("zoom");
30 }
31 }
32 });
33
34 p.add(b);
35
36 Canvas3D c = new Canvas3D( null );
37 SimpleUniverse u = new SimpleUniverse(c);
38 add("Center",c);
39 u.getViewingPlatform().setNominalViewingTransform();
40 u.addBranchGraph(setBranchGroup());
41 }
42
43 public BranchGroup setBranchGroup(){
44 BranchGroup bg =new BranchGroup();
45 TransformGroup tg =new TransformGroup();
46
47 tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
48 tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
49 tg.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
50
51 Shape3D triangle=new Shape3D();
52 TriangleArray geom=new TriangleArray(6,
53 TriangleArray.COORDINATES |TriangleArray.COLOR_3);
54 Point3d[] coords={new Point3d(0.0,0.6928,0.0),
55 new Point3d(-0.6,-0.3464,0.0),
56 new Point3d(0.6,-0.3464,0.0),
57 new Point3d(0.0,0.6928,0.0),
58 new Point3d(0.6,-0.3464,0.0),
59 new Point3d(-0.6,-0.3464,0.0)};
60 Color3f[] colors={new Color3f(1.0f,1.0f,0.0f),
61 new Color3f(0.0f,1.0f,1.0f),
62 new Color3f(1.0f,0.0f,1.0f),
63 new Color3f(0.0f,0.0f,1.0f),
64 new Color3f(0.0f,1.0f,0.0f),
65 new Color3f(1.0f,0.0f,0.0f)};
66 geom.setCoordinates(0,coords);
67 geom.setColors(0,colors);
68 geom.setCapability(Geometry.ALLOW_INTERSECT);
69 triangle.setGeometry(geom);
70 tg.addChild(triangle);
71 bg.addChild(tg);
72
73 mz=new MouseZoom();
74 BoundingSphere bs =
75 new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
76 mz.setTransformGroup(tg);
77 mz.setSchedulingBounds(bs);
78 bg.addChild(mz);
79 return bg;
80 }
81
82 public static void main (String[] ar){
83 Frame f=new Browser();
84 f.setTitle("Browser");
85 f.setSize(500,500);
86 f.show();
87 }
88 }
-----------------------------------------------------------------------
Yukari Uotani <uotani@xxxxxxxxxx>