/* The applet graphically represents the shear and bending of a thin (10 micron) * diamond monocrystal due to torsions on its parallel mounting wires. * * Brent Evans * Version 1.1, Sept. 2002 * new since 1.0 (Aug. 2002): * - user inputs an angular torsion to each of the wires, * instead of torques on the crystal. * * Affiliate source files: bendCanvas.java, bendGraphic.java, TextSlide.java. * */ import java.applet.*; import java.awt.*; import java.lang.Math.*; public class bender extends Applet { bendCanvas canvas; TextSlide rightField; TextSlide leftField; // double minVal = -100000, maxVal = 100000; double minVal = -4*Math.PI, maxVal = 4*Math.PI; // Initialization called by the applet container. public void init() { setLayout(new BorderLayout(0,0)); Panel p1 = new Panel(); p1.setLayout(new GridLayout(1,1,0,0)); rightField = new TextSlide(this,"Right Torsion (radians): " , minVal,maxVal); p1.add(rightField); add(p1, BorderLayout.EAST); Panel p2 = new Panel(); p2.setLayout(new GridLayout(1,1,0,0)); leftField = new TextSlide(this,"Left Torsion (radians): ", minVal,maxVal); p2.add(leftField); add(p2, BorderLayout.WEST); canvas = new bendCanvas(); add(canvas, BorderLayout.CENTER); rightField.setValue(0); leftField.setValue(0); // You have to call validate to convince the canvas to adjust its layout. validate(); } // Start the animation. Called by applet's environment. public void start() { canvas.setEnabled(true); canvas.drawCanvas(); } public void stop() { canvas.setEnabled(false); } public void changeParam(TextSlide which) { if (which == rightField) { canvas.setTorsion_R(rightField.getValue()); } else if (which == leftField) { canvas.setTorsion_L(leftField.getValue()); } } public void paint(Graphics g) { } }