/* ControlPanel class for YHang applet */ /* Simeon Warner - 20May96 */ import java.awt.*; public class ControlPanel extends Panel { int[] predefinedAngles = { 60, 90, 120, 170 }; Button preset0, preset1, preset2, preset3; TextField angleField, weightField; Simulation simulation; ControlPanel() { int j; //Can set background here: //setBackground(Color.white); setLayout(new GridLayout(6,2,5,5)); preset0 = new Button(String.valueOf(predefinedAngles[0])); preset1 = new Button(String.valueOf(predefinedAngles[1])); preset2 = new Button(String.valueOf(predefinedAngles[2])); preset3 = new Button(String.valueOf(predefinedAngles[3])); angleField = new TextField("",10); weightField = new TextField("",10); add(new Label("Presets (deg)", Label.RIGHT)); add(preset0); add(new Label("")); add(preset1); add(new Label("")); add(preset2); add(new Label("")); add(preset3); add(new Label("Angle (deg)", Label.RIGHT)); add(angleField); add(new Label("Weight (N)", Label.RIGHT)); add(weightField); } public void init(Simulation s) { simulation = s; } public Insets insets() { return new Insets(10,10,0,0); } public void setWeight(float weight) { weightField.setText(String.valueOf(weight)); } public void setAngle(float angle) { angleField.setText(String.valueOf(angle)); } public boolean action(Event evt, Object arg) { float a; if (evt.target == angleField) { try { a=Float.valueOf(angleField.getText()).floatValue(); } catch (NumberFormatException e) { a=(float)90.0; } // clip max and min if (a<(float)1.0) a=(float)1.0; else if (a>(float)180.0) a=(float)180.0; // set in simulation and display simulation.setAngle(a); angleField.setText(String.valueOf(a)); return true; } else if (evt.target == weightField) { try { a=Float.valueOf(weightField.getText()).floatValue(); } catch (NumberFormatException e) { a=(float)1.0; } // clip max and min if (a<(float)1.0) a=(float)1.0; else if (a>(float)1000000.0) a=(float)1000000.0; // set weight in simulation and display simulation.setWeight(a); weightField.setText(String.valueOf(a)); return true; } else { if (evt.target instanceof Button) { if (evt.target == preset0) { this.angleField.setText(String.valueOf(predefinedAngles[0])); simulation.setAngle((float)predefinedAngles[0]); } if (evt.target == preset1) { this.angleField.setText(String.valueOf(predefinedAngles[1])); simulation.setAngle((float)predefinedAngles[1]); } if (evt.target == preset2) { this.angleField.setText(String.valueOf(predefinedAngles[2])); simulation.setAngle((float)predefinedAngles[2]); } if (evt.target == preset3) { this.angleField.setText(String.valueOf(predefinedAngles[3])); simulation.setAngle((float)predefinedAngles[3]); } return true; } else return false; } } } /* end of Controls */