Presentation is loading. Please wait.

Presentation is loading. Please wait.

Graphics Chapter 16.  If you want to draw shapes such as a bar chart, a clock, or a stop sign, how do you do it?

Similar presentations


Presentation on theme: "Graphics Chapter 16.  If you want to draw shapes such as a bar chart, a clock, or a stop sign, how do you do it?"— Presentation transcript:

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

20

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()


Download ppt "Graphics Chapter 16.  If you want to draw shapes such as a bar chart, a clock, or a stop sign, how do you do it?"

Similar presentations


Ads by Google