/** InputPanel.java Daryl Rauhala * This file creates the GUI for the interaction of the user and the * data values of the Canvas in question. Here the fields are designed * for the Henon attractor */ import java.awt.*; class InputPanel extends Panel { private TextField xMinField,yMinField,xMaxField,yMaxField, xStartField,yStartField, iterationsField, aField, bField; private double Xmin, Ymin, Xmax, Ymax, Xstart, Ystart, A, B; private int iterations; private Panel fields = new Panel(); private Panel main = new Panel(); private Button Reset, UserInput; public InputPanel(double Xmax,double Ymax,double Xmin, double Ymin, double Xstart,double Ystart, int iterations ) { this.Xmin = Xmin; this.Ymin = Ymin; this.Xmax = Xmax; this.Ymax = Ymax; this.Xstart = Xstart; this.Ystart = Ystart; this.iterations = iterations; makeInterface(); } // end of constructor with parameters /** * Default constructor with default values to start with */ public InputPanel() { this.Xmin = -2; this.Ymin = -0.75; this.Xmax = 2; this.Ymax = 0.5; this.Xstart = 0.1; this.Ystart = 0.2; this.A = 1.4; this.B = 0.3; iterations = 10000; makeInterface(); } // end of constructor public void setHenonDefaults() { this.Xmin = -2; this.Ymin = -0.75; this.Xmax = 2; this.Ymax = 0.5; this.Xstart = 0.1; this.Ystart = 0.2; this.A = 1.4; this.B = 0.3; iterations = 10000; xMinField.setText(Xmin+""); xMaxField.setText(Xmax+""); yMinField.setText(Ymin+""); yMaxField.setText(Ymax+""); xStartField.setText(Xstart+""); yStartField.setText(Ystart+""); aField.setText(A+""); bField.setText(B+""); iterationsField.setText(iterations+""); } private void makeInterface() { fields.setLayout(new GridLayout(5,4,1,1)); fields.add(new Label("xMin", Label.CENTER)); xMinField = new TextField(Xmin+"", 8); fields.add(xMinField); fields.add(new Label("xMax", Label.CENTER)); xMaxField = new TextField(Xmax+"", 8); fields.add(xMaxField); fields.add(new Label("yMin", Label.CENTER)); yMinField = new TextField(Ymin+"", 8); fields.add(yMinField); fields.add(new Label("yMax", Label.CENTER)); yMaxField = new TextField(Ymax+"", 8); fields.add(yMaxField); fields.add(new Label("xStart", Label.CENTER)); xStartField = new TextField(Xstart+"", 8); fields.add(xStartField); fields.add(new Label("yStart", Label.CENTER)); yStartField = new TextField(Ystart+"", 8); fields.add(yStartField); fields.add(new Label("Iterations", Label.CENTER)); iterationsField = new TextField(iterations+"", 8); fields.add(iterationsField); fields.add(new Label("A", Label.CENTER)); aField = new TextField(A+"", 8); fields.add(aField); fields.add(new Label("B", Label.CENTER)); bField = new TextField(B+"", 8); fields.add(bField); main.setLayout ( new BorderLayout() ); main.add (fields, BorderLayout.CENTER ); add( main ); } // end of makeInterface() public void setFields(double Xmax, double Ymax, double Xmin, double Ymin, double Xstart, double Ystart, double a, double b, int iterations ) { this.Xmin = Xmin; this.Ymin = Ymin; this.Xmax = Xmax; this.Ymax = Ymax; this.Xstart = Xstart; this.Ystart = Ystart; this.A = a; this.B = b; this.iterations = iterations; xMinField.setText(Xmin+""); xMaxField.setText(Xmax+""); yMinField.setText(Ymin+""); yMaxField.setText(Ymax+""); xStartField.setText(Xstart+""); yStartField.setText(Ystart+""); iterationsField.setText(iterations+""); } // end of setFields /** * Maybe add get methods to return the current values of the * textfields to restart the PlotCanvas. Would have to do each * fields individually to return the value. */ public double getMaxX() { return Double.valueOf( xMaxField.getText() ).doubleValue(); } public double getMaxY() { return Double.valueOf( yMaxField.getText() ).doubleValue(); } public double getMinX() { return Double.valueOf( xMinField.getText() ).doubleValue(); } public double getMinY() { return Double.valueOf( yMinField.getText() ).doubleValue(); } public double getStartX() { return Double.valueOf( xStartField.getText() ).doubleValue(); } public double getStartY() { return Double.valueOf( yStartField.getText() ).doubleValue(); } public double getA() { return Double.valueOf( aField.getText() ).doubleValue(); } public double getB() { return Double.valueOf( bField.getText() ).doubleValue(); } public int getIterations() { return Integer.valueOf (iterationsField.getText() ).intValue(); } } // end of InputPanel