CSE142—Computer Programming I
Programming Assignment #3
Debugging Hints
Java Version
You
can get a significant pixel difference if you are using an older version of
Java. In particular, you might see pixel
differences for the strings that are drawn on the DrawingPanel if you are not
using Java 8. You can find out which
version is running by going into the interactions pane in jGRASP and typing in
the following (eclipse users can instead print this):
System.getProperty("java.version")
You should see a response like the
following:
1.8.0_77
If it begins with “1.6” or “1.7”, then you
are using an older version (Java 6 or Java 7).
To change which version of Java jGRASP is using, go to Settings, jGRASP
Startup Settings, and look for “Java executable for running jGRASP.” Pick something that begins with “1.8.” If you don’t see something that begins with
“1.8”, then you need to install a newer JDK first by following the instructions
on the “Working at Home” tab on the class web page.
Drawing
Counts
It
is possible to get a large pixel difference if you draw the same line or string
multiple times. The DrawingPanel class
has an option to help you explore this.
Set up your Graphics object this way:
Graphics g = p.getDebuggingGraphics();
When you do so, you can include the following
line of code after you finish the drawing commands:
System.out.println(p.getCounts());
This is the output produced by the sample
solution:
drawLine=234, fillRect=234}
You do not have to match these counts exactly
to get full credit, as long as your image appears correct.
Be sure to remove any debugging printlns before you turn in your
program.
Use
the IPL Computers
There
are many configuration issues that can lead to pixel differences when you run
your program on your own computer and compare the result to the sample
output. We make sure that the computers
at the IPL are properly configured to match our sample output, so you can
always stop by the IPL and run your program on one of those computers to check
whether a pixel difference is happening because of configuration issues.