aboutsummaryrefslogtreecommitdiff
path: root/Week11 Mandelbrot/src/fractals
diff options
context:
space:
mode:
authorCamil Staps2015-04-29 10:29:04 +0200
committerCamil Staps2015-04-29 10:29:04 +0200
commitcb071c4f2020b7733f5dd87fa75a7f2e447c5444 (patch)
treea95f5ad65bca7595e667b604a6471a5ba0526239 /Week11 Mandelbrot/src/fractals
parentSimple interface working (diff)
This seems to work
Diffstat (limited to 'Week11 Mandelbrot/src/fractals')
-rw-r--r--Week11 Mandelbrot/src/fractals/MainWindow.java46
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));
+ }
}