38a-section-7-solutions

38a-section-7-solutions - Mehran Sahami Handout #38A CS...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Mehran Sahami Handout #38A CS 106A November 11, 2009 Solution to Section #7 Based on a handout by Eric Roberts 1. Using Interactors // File: BoxDiagram.java // This program allows the user to create a set of boxes with labels // and then drag them around in the window. import acm.graphics.*; import acm.program.*; import java.util.*; import java.awt.event.*; import javax.swing.*; public class BoxDiagram extends GraphicsProgram { /* Initializes the program */ public void init() { contents = new HashMap<String,GObject>(); createController(); addActionListeners(); addMouseListeners(); } /* Creates the control strip at the bottom of the window */ private void createController() { nameField = new JTextField(MAX_NAME); nameField.addActionListener(this); addButton = new JButton("Add"); removeButton = new JButton("Remove"); clearButton = new JButton("Clear"); add(new JLabel("Name"), SOUTH); add(nameField, SOUTH); add(addButton, SOUTH); add(removeButton, SOUTH); add(clearButton, SOUTH); } /* Adds a box with the given name at the center of the window */ private void addBox(String name) { GCompound box = new GCompound(); GRect outline = new GRect(BOX_WIDTH, BOX_HEIGHT); GLabel label = new GLabel(name); box.add(outline, -BOX_WIDTH / 2, -BOX_HEIGHT / 2); box.add(label, -label.getWidth() / 2, label.getAscent() / 2); add(box, getWidth() / 2, getHeight() / 2); contents.put(name, box); } /* Removes the box with the given name */ private void removeBox(String name) { GObject obj = contents.get(name); if (obj != null) { remove(obj); } }...
View Full Document

Page1 / 4

38a-section-7-solutions - Mehran Sahami Handout #38A CS...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online