Presentation

Download Report

Transcript Presentation

Drawing and Filling Geometric Shapes
 Java comes with more than just points and lines.
 Within the Graphics2D class, there are also methods
for drawing rectangles, circles, and ellipses.
 Graphics2D g2 = (Graphics2D) g;
Rectangle2D.Double myRectangle = new Rectangle2D.Double(10, 20, 30,
40);
g2.draw(myRectangle);
myRectangle = new Rectangle2D.Double(50,
20, 30, 40);
g2.fill(myRectangle);
Rectangle2D and Ellipse2D
 Rectangle2D is a class from which rectangle shaped objects
derive from.
 They are constructed like so:
 Rectangle2D.Double mRect = new Rectangle2D.Double(x, y, width, height);
 X and Y refer to the upper-left corner of the rectangle.
 Ellipse2D also works the same way, except only its Double
and Float classes can be used:
 Ellipse2D.Double mEllipse = new Ellipse2D.Double(x, y, width, height);
 There is no ‘Ellipse’ class that derives from Ellipse2D.
 Also note that there is no way to define the ‘center’ of the
ellipse. Only the upper-left hand corner.
Rectangle2D and Inheritance
 Rectangle2D works similarly to Point2D.
 There are Double and Float classes for it, accessed by
using Rectangle2D followed by a dot.
 There is also a Rectangle class that extends the
Rectangle2D class.
Draw and fill
 The previous example used two methods of drawing.
 g2.draw(mRectangle);
 g2.fill(mRectangle);
 ‘Draw’ methods typically draw the outline of a shape,
while ‘fill’ methods will fill the entire body of the
shape.
 Graphics2D also has methods for drawing shapes
without defining the rectangle in its own variable.
 G2.drawRect(x, y, width, height);
 G2.fillRect(x, y, width, height);
Colors
Much Excite!
 Tired of dull and boring shape drawings?
 The Java API has a built-in Color class, too!
 Include it in your project today with:
 import java.awt.Color;
Color doesn’t follow naming
conventions!?
 There is a way to fetch pre-defined colors from the
Color class. There are constants built into Color,
named according to the color they should represent.
 Examples:
 Color.red, Color.blue, Color.magenta, Color.white…
 Notice that even though they are constants, they are
completely spelled with lower case letters.
Creating your own colors
 Colors can be constructed like:
 Color myCol = new Color(float r, float g, float b);
 r, g, and b are values between 0.0 and 1.0, with 0.0 being
no color, and 1.0 being the maximum amount of one
color that can be used.
 Color myCol = new Color(0.75F, 0.0F, 0.25F);
 Notice that we are using floats instead of doubles for
this constructor.

It is important to remember that all ‘float’ values end with an
‘F’. This denotes that it is a float value, and not a double value.
Without it, there would be a compiler error.
Using Colors
 This involves our Graphics2D object, g2.
 As already noted, you can think of Graphics as a pen.
 Before you draw a shape, there is a method called
‘setColor()’ which you can call to change the color of
what you’re drawing.
 g2.setColor(Color.red);
g2.draw(myRectangle);
 This would draw a red rectangle.
Text
Words!!
 Of course, it’s also possible to draw text onto graphical
output, as well as defining fonts for drawing.
 Graphics2D’s drawString method:
 G2.drawString(String text, int x, int y);
 When defining x and y, you are defining where the text’s
left-hand base line is (typically, the bottom of the text),
and not the upper-left hand corner of where text is
being drawn.
Fonts!!
 You may want to change the font that we use in
drawing.
 Import this class:
 import java.awt.Font;
 Among the system supplied fonts in Java are:
 Serif
 SansSerif
 Monospaced
 Dialog
 DialogInput
Fonts!!
 The fonts can also be set to different sizes, which are
given in measurements of ‘points’.
 Fonts can also be given different characteristics such as
bold and italic.
Fonts in Action!!
 Font myFont = new Font(“Serif”, Font.BOLD, 16);
g2.setFont(myFont);
g2.drawString(“My text”, 20, 30);
 The constructor for Font takes in a string containing
the name of the font, an integer constant defined in
the Font class, and the point size as an integer.
 Just like with colors, we are calling the setFont()
method to set the font before we draw the text.
 Finally, we draw the string like usual.
Text Positioning
 Unfortunately, it will be difficult to determine where
exactly text will go when you define its position.
 Getting it in the right place may require trial and error.
 Just keep adjusting the position until it looks right.
Final Example
An example applet of the graphical techniques covered is
on our website at
math.uaa.alaska.edu/~android/java/unit5. You could try
compiling it yourself to see how all of this graphical
wizardry works.
Things to try doing:
 Change the positioning, width, and height of the
shapes.
 Changing the colors.
 Changing colors at different points within the code.
 Change the font, point size, or characteristics of the
text drawn