Java3D テキストフィールドより値を入力(代入)し点を動かしたい
Java3D テキストフィールドより値を入力(代入)し、点を動かしたいのですが、下記のようにソースコードを作成しましたが、入力した値が代入されていないようです。どこをどうしたらいいか教えてください!
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import javax.swing.*;
import javax.swing.JApplet.*;
import javax.swing.JFrame.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.applet.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
public class J3A7 extends JApplet
{
JTextField text1=new JTextField("x=",10);
JTextField text2=new JTextField("y=",10);
JTextField text3=new JTextField("z=",10);
double a,b,c;
String str1,str2,str3;
GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas=new Canvas3D(config);
SimpleUniverse universe=new SimpleUniverse(canvas);
BranchGroup root=new BranchGroup();
TransformGroup trans1=new TransformGroup();
public J3A7()
{
setLayout(new BorderLayout());
add(canvas,BorderLayout.CENTER);
JPanel panel=new JPanel();
GridLayout g1=new GridLayout(1,3);
add(panel,BorderLayout.NORTH);
panel.setLayout(g1);
panel.add(text1);
panel.add(text2);
panel.add(text3);
trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
trans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
double x=0.0;
double y=0.0;
double z=0.0;
Point3d[] po1=new Point3d[1];
po1[0]=new Point3d(x,y,z);
float[] colorPo1={1.0f,0.0f,0.0f};
PointArray ge1=new PointArray(po1.length, GeometryArray.COORDINATES | GeometryArray.COLOR_3);
ge1.setCoordinates(0,po1);
ge1.setColors(0,colorPo1);
Appearance appp1=new Appearance();
appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_READ);
appp1.setCapability(Appearance.ALLOW_POINT_ATTRIBUTES_WRITE);
PointAttributes ppo1=new PointAttributes();
ppo1.setPointSize(25.0f);
ppo1.setPointAntialiasingEnable(true);
appp1.setPointAttributes(ppo1);
Shape3D gggrid1=new Shape3D(ge1,appp1);
gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
gggrid1.setCapability(Shape3D.ALLOW_GEOMETRY_WRITE);
Transform3D tr=new Transform3D();
Vector3d vector=new Vector3d(a,b,c);
tr.setTranslation(vector);
trans1.setTransform(tr);
trans1.addChild(gggrid1);
root.addChild(trans1);
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(root);
text1.addActionListener(new Listener1());
text2.addActionListener(new Listener2());
text3.addActionListener(new Listener3());
}
public class Listener1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==text1){
try{
String str1=text1.getText().trim();
a=Double.valueOf(text1.getText()).doubleValue();
}catch(NumberFormatException ex){}
}
}
}
public class Listener2 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==text2){
try{
String str2=text2.getText().trim();
b=Double.valueOf(text2.getText()).doubleValue();
}catch(NumberFormatException ex){}
}
}
}
public class Listener3 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==text3){
try{
String str3=text3.getText().trim();
c=Double.valueOf(text3.getText()).doubleValue();
}catch(NumberFormatException ex){}
}
}
}
public static void main(String[] args)
{
JFrame f= new JFrame();
J3A7 frame=new J3A7();
frame.init();
f.getContentPane().add(frame,BorderLayout.CENTER);
f.setSize(500,500);
f.setTitle("Kuukan: ボタン");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
お礼
tedwecさん参考になる回答ありがとうございました。 紹介していただいたURLや検索方法でいろいろと試してみましたが、まだ分からないことがあります。 JDK 1.3 をダウンロード、インストールし、HTML Converter 1.3 をダウンロード、インストールしました。それから Java Plug-inコントロールパネルの 「詳細」タブの「Java Plug-inのデフォルトを使用」と書かれている欄で JRE を使うように設定しました。 ・・ここまではできたのですが、 ”署名用のパスワードを設定”” HTML ファイルを HTML Converter を使ってタグの変換”する処理方法がどうも分かりません。DOSでどのように記述すればいいのか、HTML Converter の使い方などを詳しく教えていただけると助かります。