// Java 3D Test Applet // Text2DTest.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; import com.sun.j3d.utils.geometry.Text2D; import com.sun.j3d.utils.image.TextureLoader; public class Text2DTest extends Applet { boolean isStandalone = false; private Canvas3D canvas = null; private SimpleUniverse universe = null; private BranchGroup scene = null; private Background background = null; private TextureLoader loader = null; private Color3f bgcolor = new Color3f(0.0f, 0.0f, 0.0f); // 背景色 黒 private Color3f fontcolor = new Color3f(1.0f, 0.0f, 0.0f); // フォント色 赤 private Vector3f fontposition = new Vector3f(0.0f, 0.0f, 0.0f); // フォント位置 private TuplePanel fcpanel = new TuplePanel(fontcolor); private TuplePanel fppanel = new TuplePanel(fontposition); public Text2DTest() { this(false); } public Text2DTest(boolean isStandalone) { this.isStandalone = isStandalone; this.setLayout(new BorderLayout()); Panel uppanel = new Panel(); this.add(uppanel, BorderLayout.NORTH); uppanel.add( new Label("Background") ); Checkbox icheck = new Checkbox("Image", true); icheck.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { background.setImage(loader.getImage()); } else if (e.getStateChange() == ItemEvent.DESELECTED) { background.setImage(null); } } }); uppanel.add(icheck); TuplePanel bgpanel = new TuplePanel(bgcolor); bgpanel.addTupleEventListener( new TupleEventListener() { public void tupleStateChanged(TupleEvent e) { bgcolor = e.getColor3f(); background.setColor(bgcolor); } }); uppanel.add(bgpanel); 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(); downpanel.add(dpanels[i]); } dpanels[0].add( new Label("Text") ); final TextField txfield = new TextField("", 24); dpanels[0].add(txfield); final Choice fchoice = new Choice(); Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(); for (int i=0; i