// Java 3D Test Applet // Text3DTest.java // Copyright (c) 1999 ENDO Yasuyuki // mailto:yasuyuki@javaopen.org // http://www.javaopen.org/j3dbook/index.html import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.SimpleUniverse; public class Text3DTest extends Applet { private Canvas3D canvas = null; private SimpleUniverse universe = null; private BranchGroup scene = null; private TransformGroup trans = null; private TransformGroup strans = null; private float scale = 0.2f; private Material mat = null; private Font[] fonts = null; private int nfont = 0; private Font font = null; private int style = java.awt.Font.PLAIN; private String text = "Java 3D"; private Text3D text3d = null; private Color3f fontcolor = new Color3f(1.0f, 0.0f, 0.0f); // フォント色 赤 private TuplePanel fcpanel = new TuplePanel(fontcolor); private Point3f fontposition = new Point3f(0.0f, 0.0f, 0.0f); // フォント位置 原点 private TuplePanel fppanel = new TuplePanel(fontposition); public Text3DTest() { this.setLayout(new BorderLayout()); Panel downpanel = new Panel(); downpanel.setLayout( new GridLayout(3, 1) ); this.add(downpanel, BorderLayout.SOUTH); Panel[] dpanels = new Panel[3]; for (int i=0; i<3; i++) { dpanels[i] = new Panel(); dpanels[i].setLayout( new FlowLayout(FlowLayout.LEFT) ); downpanel.add(dpanels[i]); } dpanels[0].add( new Label("Text") ); final TextField txfield = new TextField(text, 24); txfield.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { text = e.getActionCommand(); universe.getLocale().removeBranchGraph(scene); text3d.setString(text); universe.addBranchGraph(scene); } }); dpanels[0].add(txfield); final Choice fchoice = new Choice(); fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(); font = fonts[0]; System.out.println("size=" + font.getSize()); for (int i=0; i