Download presentation
Presentation is loading. Please wait.
Published byGarrison Rendell Modified over 9 years ago
1
Graphics Chapter 16
2
If you want to draw shapes such as a bar chart, a clock, or a stop sign, how do you do it?
3
(0, 0) (x, y) x y x-axis y-axis Java Coordinate System (0, 0) Conventional Coordinate System
4
A rectangular area Part of a user interface Called a frame Contains title bar
5
Cannot draw directly on JFrame object This is a container Contains other objects Create a panel upon which to draw
6
Drawing Strings Drawing Lines Drawing Rectangles Drawing Ovals Drawing Arcs Drawing Polygons
7
paint() method Write own method to override default Method header public void paint(Graphics g) Graphics object Preconfigured with the appropriate state for drawing on the component repaint() method Use when window needs to be updated Calls paint() method Creates Graphics object
8
drawString() method Draw String in JFrame window Requires three arguments String x-axis coordinate y-axis coordinate Member of Graphics class
9
setFont() method Requires Font object Instruct Graphics object to use a font somegraphicsobject.setFont(someFont); setColor() method Designate Graphics color Use 13 Color class constants as arguments Create any Color object Color someColor = new Color(r, g, b); Values range from 0 to 255
10
setColor() method Designate Graphics color Use 13 Color class constants as arguments Create any Color object Color someColor = new Color(r, g, b); Values range from 0 to 255
11
drawString(String s, int x, int y); (0,0) (getWidth(),0) (0, getHeight())(getWidth(),getHeight()) (x, y) → String goes here
12
drawLine() method Draw straight line between any two points Takes four arguments x- and y-coordinates of line’s starting point x- and y-coordinates of the line’s ending point
13
drawLine(int x1, int y1, int x2, int y2); (0,0) (getWidth(),0) (0, getHeight())(getWidth(),getHeight()) (x1, y1) (x2, y2)
14
drawRect() method Draw outline of rectangle fillRect() method Draw solid or filled rectangle Both require four arguments x- and y-coordinates of upper-left corner of rectangle Width and height of rectangle
15
drawRect(int x, int y, int w, int h); fillRect(int x, int y, int w, int h); (x,y) h w h w
16
clearRect() method Draws rectangle Requires four arguments x- and y-coordinates of upper-left corner of rectangle Width and height of rectangle Appears empty or “clear” drawRoundRect() method Create rectangles with rounded corners Requires six arguments
17
drawRoundRect(int x, int y, int w, int h, int aw, int ah); fillRoundRect(int x, int y, int w, int h, int aw, int ah); (x,y) h w aw/2 ah/2
18
drawOval() and fillOval() methods Draw ovals using the same four arguments that rectangles use drawOval(int x, int y, int w, int h); fillOval(int x, int y, int w, int h); (x,y) h w
19
drawArc() method arguments x-coordinate of upper-left corner of imaginary rectangle that represents bounds of imaginary circle that contains arc y-coordinate of same point Width of imaginary rectangle that represents bounds of imaginary circle that contains arc Height of same imaginary rectangle Beginning arc position Arc angle
21
fillArc() method Create solid arc (x,y) h w drawArc(int x, int y, int w, int h, int angle1, int angle2); fillArc(int x, int y, int w, int h, int angle1, int angle2);
22
draw3DRect() method Minor variation on drawRect() method Draw rectangle that appears to have “shadowing” on two edges Contains Boolean value argument true if rectangle darker on right and bottom false if rectangle darker on left and top fill3DRect() method Create filled three-dimensional rectangles
23
drawPolygon() method Draw complex shapes Requires three arguments Integer array holds series of x-coordinate positions Second array holds series of corresponding y- coordinate positions Number of pairs of points to connect
24
fillPolygon() method Draw solid shape If beginning and ending points not identical Two endpoints connected by straight line before polygon filled with color addPoint() method Add points to polygon indefinitely
25
int[] x = {40, 70, 60, 45, 20}; int[] y = {20, 40, 80, 45, 60}; g.drawPolygon(x, y, x.length); (x[0], y[0]) (x[1], y[1]) (x[2], y[2]) (x[3], y[3]) (x[4], y[4])
26
import java.awt.Graphics; import javax.swing.JPanel; public class DrawingPanel extends JPanel { public void paintComponent (Graphics g) { g.drawRect (50, 50, 20, 20); // square g.drawRect (100, 50, 40, 20); // rectangle g.drawOval (200, 50, 20, 20); // circle g.drawOval (250, 50, 40, 20); // oval g.drawString ("Square", 50, 90); g.drawString ("Rectangle", 100, 90); g.drawString ("Circle", 200, 90); g.drawString ("Oval", 250, 90); // continued on next slide
27
g.fillRect (50, 100, 20, 20); // square g.fillRect (100, 100, 40, 20); // rectangle g.fillOval (200, 100, 20, 20); // circle g.fillOval (250, 100, 40, 20); // oval g.drawLine (50, 150, 300, 150); // line g.drawArc (50, 150, 250, 100, 0, 180); // arc g.fillArc (100, 175, 200, 75, 90, 45); // arc } // end paintComponent } // end DrawingPanel
28
import javax.swing.JFrame; public class DrawingSamples { public static void main (String [ ] args) { JFrame aWindow = new JFrame (); aWindow.setSize (350, 300); // width x height aWindow.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); aWindow.setTitle ("Samples of shapes we can draw"); DrawingPanel panel = new DrawingPanel (); aWindow.add (panel); aWindow.setVisible (true); }
29
You can display a string at any location in a panel. Can you display it centered? To do so, you need to use the FontMetrics class to measure the exact width and height of the string for a particular font. A FontMetrics can measure the following attributes:
30
Leading Amount of space between baselines Ascent Height of uppercase character from baseline to top of character Descent Measures part of characters that “hang below” baseline Height of font Sum of leading, ascent, and descent
31
getFontMetrics() method Discover font’s height Returns FontMetrics object Use FontMetrics class methods with object to return Font ’s statistics public int getLeading() public int getAscent() public int getDescent() public int getHeight()
32
stringWidth() method Returns integer width of a String Requires name of String Member of FontMetrics class getHeight() getLeading() getAscent() getDescent()
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.