1 / 32

Java Programming

Java Programming. Graphics Chapter 16. Graphics. If you want to draw shapes such as a bar chart, a clock, or a stop sign, how do you do it?. Java Coordinate System. x -axis. x. (0, 0). (0, 0). y. ( x, y ). Java Coordinate System. y -axis. Conventional Coordinate System.

cili
Download Presentation

Java Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Programming Graphics Chapter 16

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

  3. Java Coordinate System x-axis x (0, 0) (0, 0) y (x, y) Java Coordinate System y-axis Conventional Coordinate System

  4. Creating a Window • A rectangular area • Part of a user interface • Called a frame • Contains title bar

  5. Preparing to Draw • Cannot draw directly on JFrame object • This is a container • Contains other objects • Create a panel upon which to draw

  6. Drawing Geometric Figures • Drawing Strings • Drawing Lines • Drawing Rectangles • Drawing Ovals • Drawing Arcs • Drawing Polygons

  7. Graphic Methods • 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. Drawing Strings • drawString() method • Draw String in JFrame window • Requires three arguments • String • x-axis coordinate • y-axis coordinate • Member of Graphics class

  9. Drawing Strings • 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. Drawing Strings • 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. Drawing Strings (getWidth(),0) (0,0) (x, y) → String goes here (0, getHeight()) (getWidth(),getHeight()) drawString(String s, int x, int y);

  12. Drawing Lines • 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. Drawing Lines (getWidth(),0) (0,0) (x1, y1) (x2, y2) (0, getHeight()) (getWidth(),getHeight()) drawLine(int x1, int y1, int x2, int y2);

  14. Drawing Shapes • 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. Drawing Rectangles drawRect(intx, inty, intw, inth); fillRect(intx, inty, intw, inth); (x,y) (x,y) h h w w

  16. Drawing Shapes • 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. Drawing Rounded Rectangles drawRoundRect(intx, inty, intw, inth, intaw, intah); fillRoundRect(intx, inty, intw, inth, intaw, intah); aw/2 (x,y) ah/2 h w

  18. Drawing Ovals • drawOval() and fillOval() methods • Draw ovals using the same four arguments that rectangles use drawOval(intx, inty, intw, inth); fillOval(intx, inty, intw, inth); (x,y) h w

  19. Drawing Arcs • 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. Drawing Arcs

  21. Drawing Arcs • fillArc() method • Create solid arc drawArc(intx, inty, intw, inth, intangle1, intangle2); fillArc(intx, inty, intw, inth, intangle1, intangle2); (x,y) h w

  22. Shadowed Rectangles • 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. Drawing Polygons • 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. Drawing Polygons • 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. Drawing Polygons 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[3], y[3]) (x[4], y[4]) (x[2], y[2])

  26. Drawing Example 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. Drawing Example 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. Drawing Example import javax.swing.JFrame; public class DrawingSamples { public static void main (String [ ] args) { JFrameaWindow = 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. Font Statistics • 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. Font Statistics • 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. Font Statistics • 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. Font Statistics • stringWidth() method • Returns integer width of a String • Requires name of String • Member of FontMetrics class getLeading() getHeight() getAscent() getDescent()

More Related