diff options
author | Camil Staps | 2015-04-29 10:29:04 +0200 |
---|---|---|
committer | Camil Staps | 2015-04-29 10:29:04 +0200 |
commit | cb071c4f2020b7733f5dd87fa75a7f2e447c5444 (patch) | |
tree | a95f5ad65bca7595e667b604a6471a5ba0526239 /Week11 Mandelbrot/src/fractals | |
parent | Simple interface working (diff) |
This seems to work
Diffstat (limited to 'Week11 Mandelbrot/src/fractals')
-rw-r--r-- | Week11 Mandelbrot/src/fractals/MainWindow.java | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/Week11 Mandelbrot/src/fractals/MainWindow.java b/Week11 Mandelbrot/src/fractals/MainWindow.java index 44e1791..7a7a94f 100644 --- a/Week11 Mandelbrot/src/fractals/MainWindow.java +++ b/Week11 Mandelbrot/src/fractals/MainWindow.java @@ -3,6 +3,7 @@ package fractals; import com.camilstaps.mandelbrot.MandelbrotController;
+import com.camilstaps.mandelbrot.ZoomFrame;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Insets;
@@ -11,6 +12,7 @@ import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JFrame;
+import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
@@ -24,23 +26,23 @@ import javax.swing.JTextField; * creates a window to which a GridView panel is added
*
*/
-public class MainWindow implements MandelbrotController.MandelbrotProvider {
+public class MainWindow implements MandelbrotController.MandelbrotProvider, ZoomFrame.MandelbrotTextFields {
// the size of the window
- public static final int WIDTH = 500, HEIGHT = 500;
+ public static final int WIDTH = 650, HEIGHT = 650;
// The grip panel
private final GridView grid;
- private final JTextField field_centerX = new JTextField("0");
- private final JTextField field_centerY = new JTextField("0");
- private final JTextField field_scale = new JTextField("100");
- private final JTextField field_repetitions = new JTextField("100");
+ private final JTextField field_centerX = new JTextField("0", 6);
+ private final JTextField field_centerY = new JTextField("0", 6);
+ private final JTextField field_scale = new JTextField("100", 6);
+ private final JTextField field_repetitions = new JTextField("100", 6);
private final JButton button_redraw = new JButton("Redraw");
private final MandelbrotController mandelbrotController;
public MainWindow () {
- JFrame mainFrame = new JFrame ("Mandelbrot");
+ ZoomFrame mainFrame = new ZoomFrame ("Mandelbrot");
mainFrame.setLayout(new BorderLayout());
mainFrame.setSize (WIDTH, HEIGHT);
@@ -53,7 +55,11 @@ public class MainWindow implements MandelbrotController.MandelbrotProvider { grid = new GridView(WIDTH - insets.left - insets.right, HEIGHT - insets.top - insets.bottom);
mainFrame.add(grid, BorderLayout.CENTER);
- mandelbrotController = new MandelbrotController(this, grid);
+ mandelbrotController = new MandelbrotController(this, grid);
+ mandelbrotController.redraw();
+
+ mainFrame.setMandelbrotController(mandelbrotController);
+ mainFrame.setMandelbrotTextFields(this);
JPanel panel = new JPanel(new FlowLayout());
button_redraw.addActionListener(new ActionListener() {
@@ -64,9 +70,13 @@ public class MainWindow implements MandelbrotController.MandelbrotProvider { }
}
});
+ panel.add(new JLabel("Center x:"));
panel.add(field_centerX);
+ panel.add(new JLabel("y:"));
panel.add(field_centerY);
+ panel.add(new JLabel("Scale:"));
panel.add(field_scale);
+ panel.add(new JLabel("Repetitions:"));
panel.add(field_repetitions);
panel.add(button_redraw);
@@ -102,5 +112,25 @@ public class MainWindow implements MandelbrotController.MandelbrotProvider { public int getRepetitions() {
return Integer.parseInt(field_repetitions.getText());
}
+
+ @Override
+ public void setCenterX(double x) {
+ field_centerX.setText(Double.toString(x));
+ }
+
+ @Override
+ public void setCenterY(double y) {
+ field_centerY.setText(Double.toString(y));
+ }
+
+ @Override
+ public void setScale(double scale) {
+ field_scale.setText(Double.toString(scale));
+ }
+
+ @Override
+ public void setRepetitions(double repetitions) {
+ field_repetitions.setText(Double.toString(repetitions));
+ }
}
|