From cb071c4f2020b7733f5dd87fa75a7f2e447c5444 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 29 Apr 2015 10:29:04 +0200 Subject: This seems to work --- Week11 Mandelbrot/src/fractals/MainWindow.java | 46 +++++++++++++++++++++----- 1 file changed, 38 insertions(+), 8 deletions(-) (limited to 'Week11 Mandelbrot/src/fractals') 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)); + } } -- cgit v1.2.3