public DisplayPane(LSystem lsystem) {
		super(new BorderLayout());
		this.lsystem = lsystem;

		expander = new Expander(lsystem);
		// We can't edit the expansion, of course.
		expansionDisplay.setEditable(false);
		// The user has to be able to change the recursion depth.
		JSpinner spinner = new JSpinner(spinnerModel);
		spinnerModel.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e) {
				updateDisplay();
			}
		});
		// Now, for the angle at which the damn thing is viewed...
		JSpinner s1 = new JSpinner(pitchModel), s2 = new JSpinner(rollModel), s3 = new JSpinner(
				yawModel);
		ChangeListener c = new ChangeListener() {
			public void stateChanged(ChangeEvent e) {
				updateDisplay();
				// displayAction.setEnabled(true);
			}
		};
		pitchModel.addChangeListener(c);
		rollModel.addChangeListener(c);
		yawModel.addChangeListener(c);
		
		// Lay out the component.
		JPanel topPanel = new JPanel(new BorderLayout());
		topPanel.add(spinner, BorderLayout.EAST);
		topPanel.add(expansionDisplay, BorderLayout.CENTER);
		topPanel.add(progressBar, BorderLayout.WEST);
		add(topPanel, BorderLayout.NORTH);
		JPanel bottomPanel = new JPanel();
		bottomPanel.add(new JLabel("Pitch"));
		bottomPanel.add(s1);
		bottomPanel.add(new JLabel("Roll"));
		bottomPanel.add(s2);
		bottomPanel.add(new JLabel("Yaw"));
		bottomPanel.add(s3);
		//bottomPanel.setBackground(Color.WHITE);
		JScrollPane scroller = new JScrollPane(imageDisplay);
		add(scroller, BorderLayout.CENTER);
		add(bottomPanel, BorderLayout.SOUTH);
		// Finally, set the initial display.
		updateDisplay();
	}