Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Java Chapter 8 - Introduction to Java Graphics1 Chapter 8 Introduction to Java Graphics.

Similar presentations


Presentation on theme: "Introduction to Java Chapter 8 - Introduction to Java Graphics1 Chapter 8 Introduction to Java Graphics."— Presentation transcript:

1 Introduction to Java Chapter 8 - Introduction to Java Graphics1 Chapter 8 Introduction to Java Graphics

2 Introduction to Java Chapter 8 - Introduction to Java Graphics2 Java Graphics Systems The Java SDK contains to different graphics systems –The Abstract Windowing Toolkit (AWT), which was the original Java graphics system –The Swing package, which is a newer, more flexible graphics system Only the Swing graphics system is taught in this text

3 Introduction to Java Chapter 8 - Introduction to Java Graphics3 Components and Containers The two principal types of graphics objects are Containers and Components A Component is visual object containing text or graphics –Here, we will work with a completely blank component, known as a “Canvas” A Container is a graphical object that can hold components or other containers –The principal container is a Frame. It is a part of the computer screen surrounded by borders and title bars.

4 Introduction to Java Chapter 8 - Introduction to Java Graphics4 Displaying Java Graphics To display Java graphics: 1.Create the component or components to display 2.Create a frame to hold the component(s), and place the component(s) into the frame(s). 3.Create a “listener” object to detect and respond to mouse clicks, and assign the listener to the frame. The components in this chapter will be of class JCanvas, and the containers will be of class JFrame

5 Introduction to Java Chapter 8 - Introduction to Java Graphics5 Displaying Java Graphics (2) Required packages Create component Create “Listener” Create frame Add listener and com- ponent to frame

6 Introduction to Java Chapter 8 - Introduction to Java Graphics6 Listeners A “Listener” class listens for mouse clicks or keyboard input on a container or component, and responds when it occurs –In this chapter, we will use a “Window” listener to detect mouse clicks and to shut down the program Trap mouse clicks in the “Close Window” box, and exit when one occurs

7 Introduction to Java Chapter 8 - Introduction to Java Graphics7 Displaying Graphics on a Component The paintComponent method is used to draw graphics on a component. –The calling sequence is: paintComponent( Graphics g ) –The Graphics object must be immediately cast to a java.awt.Graphics2D object before it can be used with Swing graphics –Once this is done, all of the classes in java.awt.geom can be used to draw graphics on the component

8 Introduction to Java Chapter 8 - Introduction to Java Graphics8 Example: Drawing a Line Create Line2D object Draw line represented by object

9 Introduction to Java Chapter 8 - Introduction to Java Graphics9 The Graphics Coordinate System Java uses a graphics coor- dinate system with the origin (0,0) in the upper left-hand corner –x axis is positive to the right –y axis is positive down By default, the units of measure are pixels –There are 72 pixels / inch Unit of measure can be changed y-axisx-axis origin

10 Introduction to Java Chapter 8 - Introduction to Java Graphics10 The Line2D Classes There are two concrete classes for creating lines: Line2D.Float and Line2D.Double. The only difference between them is the units of the calling parameters. Constructors: Line2D.Double( double x1, double y1, double x2, double y2 ) Line2D.Float( float x1, float y1, float x2, float y2 ) These classes create a line from (x 1,y 1 ) to (x 2,y 2 )

11 Introduction to Java Chapter 8 - Introduction to Java Graphics11 Controlling Object Color The color of a graphics object is controlled by the Graphics2D method setColor. The color may be any object of class java.awt. Color, including the following pre-defined values:

12 Introduction to Java Chapter 8 - Introduction to Java Graphics12 Controlling Line Width and Style Line width and style is controlled with a BasicStroke object Constructors have the form: BasicStroke(float width); BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase); Can control line width, line cap style, line join style, and dashing pattern

13 Introduction to Java Chapter 8 - Introduction to Java Graphics13 Example: Setting Color and Stroke Set color Set stroke Draw line Define stroke

14 Introduction to Java Chapter 8 - Introduction to Java Graphics14 The Rectangle2D Classes There are two classes for creating rectangles: Rectangle2D.Float and Rectangle2D.Double. The only difference between them is the units of the calling parameters. Constructors: Rectangle2D.Double( double x, double y, double w, double h ) Rectangle2D.Float( float x, float y, float w, float h ) These classes create a rectangle with origin (x,y), with width w and height h

15 Introduction to Java Chapter 8 - Introduction to Java Graphics15 Example: Creating a Rectangle

16 Introduction to Java Chapter 8 - Introduction to Java Graphics16 The Ellipse2D Classes There are two classes for creating circles and ellipses: Ellipse2D.Float and Ellipse2D. Double. The only difference between them is the units of the calling parameters. Constructors: Ellipse2D.Double( double x, double y, double w, double h); Ellipse2D.Float( float x, float y, float w, float h); These classes create the ellipse that fits in a rectangular box with origin (x,y), with width w and height h

17 Introduction to Java Chapter 8 - Introduction to Java Graphics17 Example: Creating an Ellipse

18 Introduction to Java Chapter 8 - Introduction to Java Graphics18 The Arc2D Classes There are two classes for creating arcs: Arc2D.Float and Arc2D.Double. Constructors: Arc2D.Double( double x, double y, double w, double h, double start, double extent, int type ); Arc2D.Float( float x, float y, float w, float h, float start, float extent, int type ); –These classes create an arc that fits in a rectangular box with origin (x,y), with width w and height h. The arc starts at start radians and extends for extent radians. –The type of arc is Arc2D.OPEN, Arc2D.CHORD, or Arc2D.PIE

19 Introduction to Java Chapter 8 - Introduction to Java Graphics19 Example: Creating Arcs

20 Introduction to Java Chapter 8 - Introduction to Java Graphics20 Displaying Text Text is displayed using the Graphics2D method drawString. Forms: drawString(String s, int x, int y); drawString(String s, float x, float y); These methods write String s on the component. The point (x,y) specifies the lower-left hand corner of the text box within the component. –Note that this differs from the convention for other 2D graphics objects, where (x,y) is the upper-left hand corner!

21 Introduction to Java Chapter 8 - Introduction to Java Graphics21 Example: Writing Text Strings This corner is (20,40)

22 Introduction to Java Chapter 8 - Introduction to Java Graphics22 Setting Fonts Fonts are created with the java.awt.Font class Constructor: Font( String s, int style, int size ) –s is the name for the font to use. –style is the style ( Font.PLAIN, Font.BOLD, Font.ITALIC, or a combination) –size is the font size in points Any font on the system may be used, but certain fonts are guaranteed to be present on any system

23 Introduction to Java Chapter 8 - Introduction to Java Graphics23 Standard Font Names The following standard fonts are present on any Java implementation:

24 Introduction to Java Chapter 8 - Introduction to Java Graphics24 Example: Defining Fonts

25 Introduction to Java Chapter 8 - Introduction to Java Graphics25 Getting Information About Fonts Class java.awt.FontMetrics can be used to get information about a font Constructor: FontMetrics fm = new FontMetrics( Font f ); FontMetrics fm = g2.getFontMetrics(); Methods:

26 Introduction to Java Chapter 8 - Introduction to Java Graphics26 Example: Getting Font Information Result: Code:


Download ppt "Introduction to Java Chapter 8 - Introduction to Java Graphics1 Chapter 8 Introduction to Java Graphics."

Similar presentations


Ads by Google