Lab Assignment 10 -- Demo and Writeup Due Nov. 15 in the lab session
CS 5551, Fall Semester, 2010
15 Points
Topics: Printing and Dragging

Reference: Printing and 2D Graphics links on class page.

The assignment: Modify the program of the previous assignments to allow the user to:
(1) pop up a print dialog that allows the user to print the picture, and
(2) drag a drawing object to a new position.

Discussion:
(1) Add a "Print" menu item to the "File" menu that pops up a print dialog. Here is the code for the HelloWorldPrinter program file, which has an example of popping up a printer dialog.
(2) To drag an object in the drawing area, you first select it by clicking down in its bounding rectangle, and then drag it around by holding the mouse key down (releasing the key stops the dragging). Here is the code for the SwingShapeMover program file, which has an example of (double buffered) dragging. Here is a version of the program that doesn't do double buffering (Swing does it automatically): ShapeMover program file . You should have another icon on the toolbar to initiate this. Often an arrow pointing up to the left is used as a "selection" icon (Acrobat Reader uses a hand icon). After clicking on this "drag" icon, click on one of your objects to generate a "mouse pressed" event. To identify which object was clicked on, i.e. the selection, iterate through your list of objects until the bounding rectangle of the object contains the "click point" (actually you should iterate backward through the list - why??). After that, while the mouse button is down, get "mouse dragged" events and update the position of the object (you might have to redraw all the objects either on each "mouse dragged" event or when you are done dragging).

Some applications have two toolbars: a "general" toolbar across the top to perform general operations such as printing, selection, cut, copy, paste, etc., and an application-specific toolbar down the left side (to choose shapes and colors in our case). This isn't required, just something to think about.

What to turn in: Turn in the following items from the Computer Science Lab Report Format:
1. (1 point) The Basic Information (your name, class, section, TA's name, assignment number, and date) can be on a separate cover sheet or as (highlighted) comments at the top of your main program file.
11. (5 points) Include the program listings. This listing should show good style, be appropriately commented, have the important/new parts highlighted, and include handwritten explanations if it helps the reader's understanding of the code.
13./14. (9 points) Do a demo of your modified program for the TA that demonstrates that the program works correctly.


Page URL: http://www.d.umn.edu /~ddunham/cs5551f10/assignments/lab10/assignment.html
Page Author: Doug Dunham
Last Modified: Monday, 15-Nov-2010 13:16:05 CST
Comments to: ddunham@d.umn.edu