The objectives of today's lab:
Please work with the same partner that you worked with during the last lab. As always, feel free to ask lots of questions!
One of the neat things about programming in Java is that it contains a large number of classes that can be used to program graphics. It turns out, though, that the details of doing so can be be somewhat tedious in Java. This is especially true for simple programs, such as drawing pictures in a window. Luckily, someone else recognized that problem as well and wrote a class to handle simple drawing tasks. We'll be using this class in today's lab.
Canvas classIn your terminal window, cd to the directory
/Accounts/courses/cs117/dmusican/. There, you will find
a file named Canvas.java. Copy this file into your home
directory (similarly to the last lab, you should create a
lab2 directory and put all of your files from this week's
lab in there).
You can open up the file and look at it if you'd like. However, we won't be paying much attention for a while to what's in this class. Instead, we're going to use this class in our own programs.
Now copy the file MyArtwork.java from the
Accounts/courses/cs117/dmusican/ directory and open it
up. Read through the code and see if you can figure out what it will
do.
To compile your program, you need to compile both Java programs. Type:
javac *.java
in the terminal window. The * is a "wildcard." In
other words, *.java refers to all files that end in
.java.
Finally, assuming that you don't get any errors (call for help if you do), run your program. Type:
java MyArtwork
What do you see? Try modifying the program to accomplish the following:
The documentation for the Canvas class is at this web page. Notice that the page has distinct sections: a general description of the class, a summary of fields and constructors (we'll talk about those later), and a more detailed description of all the methods available to you. Take a few minutes to skim the methods and to familiarize yourself with the documentation format. Then try picking out a few methods that look like they might be interesting, and try them out. Modify your program to use other methods from this documentation page.
We're going to shift away from graphics for a short while, but don't worry, we'll be back!
Copy the program Arithmetic.java from the /Accounts/courses/cs117/dmusican/. Look through the program, to get a sense for what it might do, and run it. Answer the following questions in a file called lab2.txt.
Question #1:What does the operation % do? How about /? (Try running the program several times with different input.)
Now change the types of a and b from int to double. Recompile and rerun.
Question #2:How does the behavior of / change?
Question #3:The type double is badly named. What does it mean in this context?
Write a Java application named MyDrawing.java. Your
program should create a Canvas object and, using the
methods in the Canvas class, draw a picture. Spend a
little bit of time experimenting with the different methods, and then
figure out how to combine these methods to draw more complex shapes or
pictures. Use the arithmetic operations above as part of your
program.
Some suggestions:
wait() and erase() methods to erase part of the picture. (If you're really feeling ambitious, you might want to figure out how you could use these methods to make it appear as if something is moving across your canvas.)Be creative, and have fun!
Turn in your entire directory with hsp your answers to the questions as well as your graphics demos. Creativity is highly valued! Again, only one member of a team needs to submit the work, but make sure that both team members names are in comments in the program.