// File: BezierMenu.java import java.awt.*; /** A simple menu that lets the user choose between a few modes of operation. **/ public class BezierMenu extends Panel { protected State state; protected TextField samplesField; public BezierMenu(State state) { this.state = state; setLayout(new FlowLayout(FlowLayout.LEFT)); addButtons(); } protected void addButtons() { Button newButton = new Button("New"); add(newButton); //Button saveButton = new Button("Save"); //add(saveButton); //Button clearButton = new Button("Clear"); //add(clearButton); Button previewButton = new Button("Toggle preview"); add(previewButton); Label samplesLabel = new Label("Samples:"); add(samplesLabel); TextField samplesField = new TextField("100",5); this.samplesField = samplesField; add(samplesField); Button updateButton = new Button("Update"); add(updateButton); } public boolean action(Event e, Object o) { String s = (String) o; if (e.target == samplesField) { return true; // So it can't be used as a "command line"... :) } if (s.equals("New")) { state.setState(State.CREATING); } //else if (s.equals("Save")) { // Generate PostScript file... //} else if (s.equals("Update")) { try { state.setSamples(Integer.parseInt(samplesField.getText())); } catch (NumberFormatException nfe) { state.setSamples(100); } } else if (s.equals("Toggle preview")) { state.togglePreview(); } return true; } }