public JStatusPane(final Field field, final JFrame parentFrame) {
        this.stepField = new JTextField(TEXTFIELD_WIDTH);
        this.populationField = new JTextField(TEXTFIELD_WIDTH);
        this.field = field;
        if (field != null) {
            field.addObserver(this);
            update(null, null);
        }

        stepField.setEditable(false);
        stepField.setHorizontalAlignment(SwingConstants.RIGHT);

        populationField.setEditable(false);
        populationField.setHorizontalAlignment(SwingConstants.RIGHT);

        final JLabel stepLabel = new JLabel("Steps: ");
        final JLabel populationLabel = new JLabel("Population: ");

        stepLabel.setLabelFor(stepField);
        populationLabel.setLabelFor(populationField);

        final JButton helpButton = new JButton(
            "Help",
            Genetic.loadIcon("/genetic/res/questionmark.png"));
        final JButton aboutButton = new JButton(
            "About",
            Genetic.loadIcon("/genetic/res/businesscard.png"));

        helpButton.addActionListener(new ActionHelpButton(parentFrame));
        helpButton.setFocusPainted(false);
        aboutButton.addActionListener(new ActionAboutButton(parentFrame));
        aboutButton.setFocusPainted(false);

        final JPanel labelPane = new JPanel();
        labelPane.add(stepLabel);
        labelPane.add(stepField);
        labelPane.add(Box.createHorizontalStrut(Gui.GAP * 2));
        labelPane.add(populationLabel);
        labelPane.add(populationField);

        final JPanel buttonPane = new JPanel();
        buttonPane.add(helpButton);
        buttonPane.add(Box.createHorizontalStrut(Gui.GAP * 2));
        buttonPane.add(aboutButton);

        setLayout(new BorderLayout());
        add(labelPane, BorderLayout.WEST);
        add(Box.createGlue(), BorderLayout.CENTER);
        add(buttonPane, BorderLayout.EAST);
    }