graphics and java 2d
Download
Skip this Video
Download Presentation
Graphics and Java 2D

Loading in 2 Seconds...

play fullscreen
1 / 22

Graphics and Java 2D - PowerPoint PPT Presentation


  • 273 Views
  • Uploaded on

Graphics and Java 2D Introduction Java’s graphics capabilities Drawing 2D shapes Controlling colors Controlling fonts Java 2D API More sophisticated graphics capabilities Drawing custom 2D shapes Filling shapes with colors and patterns Object Color Component Arc2D Font FontMetrics

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Graphics and Java 2D' - niveditha


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction
Introduction
  • Java’s graphics capabilities
    • Drawing 2D shapes
    • Controlling colors
    • Controlling fonts
  • Java 2D API
    • More sophisticated graphics capabilities
      • Drawing custom 2D shapes
      • Filling shapes with colors and patterns
introduction classes and interfaces
Object

Color

Component

Arc2D

Font

FontMetrics

Graphics

BasicStroke

Polygon

Classes and interfaces from the Java2D API that appear in package java.awt

Classes from the Java2D API that appear in package java.awt.geom

interface java.awt.Paint

interface java.awt.Shape

GeneralPath

interface java.awt.Stroke

Line2D

RectangularShape

Graphics2D

Ellipse2D

GradientPaint

Rectangle2D

TexturePaint

RoundRectangle2D

Introduction:Classes and Interfaces
introduction4
Introduction
  • Java’s coordinate system
    • Scheme for identifying all points on screen
    • Upper-left corner has coordinates (0,0)
    • Coordinate point composed of x-coordinate and y-coordinate
graphics contexts and graphics objects
Graphics Contexts and Graphics Objects
  • Graphics context
    • Enables drawing on screen
    • Graphics object manages graphics context
      • Controls how information is drawn
    • Class Graphics is abstract
      • Cannot be instantiated
      • Contributes to Java’s portability
    • Class Component method paint takes Graphics object

publicvoidpaint(Graphicsg)

    • Called through method repaint
color control
Color Control
  • Class Color
    • Defines methods and constants for manipulating colors
    • Colors are created from red, green and blue components
      • RGB values
slide9
1 // ShowColors.java

2 // Choosing colors with JColorChooser.

3 import java.awt.*;

4 import java.awt.event.*;

5 import javax.swing.*;

6

7 publicclass ShowColors extends JFrame {

8 private JButton changeColorButton;

9 private Color color = Color.LIGHT_GRAY;

10 private Container container;

11

12 // set up GUI

13 public ShowColors()

14 {

15 super( "Using JColorChooser" );

16

17 container = getContentPane();

18 container.setLayout( new FlowLayout() );

19

20 // set up changeColorButton and register its event handler

21 changeColorButton = new JButton( "Change Color" );

22 changeColorButton.addActionListener(

23

slide10
JColorChooser allows user to choose from among several colors

static method showDialog displays the color chooser dialog

24 new ActionListener() { // anonymous inner class

25

26 // display JColorChooser when user clicks button

27 publicvoid actionPerformed( ActionEvent event )

28 {

29 color = JColorChooser.showDialog(

30 ShowColors.this, "Choose a color", color );

31

32 // set default color, if no color is returned

33 if ( color == null )

34 color = Color.LIGHT_GRAY;

35

36 // change content pane's background color

37 container.setBackground( color );

38 }

39 } // end anonymous inner class

40 ); // end call to addActionListener

41

42 container.add( changeColorButton );

43

44 setSize( 400, 130 );

45 setVisible( true );

46 } // end ShowColor2 constructor

slide11
47 // execute application

48 publicstaticvoid main( String args[] )

49 {

50 ShowColors application = new ShowColors();

51 application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

52 }

53 } // end class ShowColors2

font control
Font Control
  • Class Font
    • Contains methods and constants for font control
    • Font constructor takes three arguments
      • Font name
        • Monospaced, SansSerif, Serif, etc.
      • Font style
        • Font.PLAIN, Font.ITALIC and Font.BOLD
      • Font size
        • Measured in points (1/72 of inch)
font related methods and constants14
Font-related methods and constants

// set font to Serif (Times), bold, 12pt and draw a string

g.setFont( new Font( "Serif", Font.BOLD, 12 ) );

g.drawString( "Serif 12 point bold.", 20, 50 );

// set font to Monospaced (Courier), italic, 24pt and draw a string

g.setFont( new Font( "Monospaced", Font.ITALIC, 24 ) );

g.drawString( "Monospaced 24 point italic.", 20, 70 );

// set font to SansSerif (Helvetica), plain, 14pt and draw a string

g.setFont( new Font( "SansSerif", Font.PLAIN, 14 ) );

g.drawString( "SansSerif 14 point plain.", 20, 90 );

// set font to Serif (Times), bold/italic, 18pt and draw a string

g.setColor( Color.RED );

g.setFont( new Font( "Serif", Font.BOLD + Font.ITALIC, 18 ) );

g.drawString( g.getFont().getName() + " " + g.getFont().getSize() +

" point bold italic.", 20, 110 );

java 2d api
Java 2D API
  • Java 2D API
    • Provides advanced 2D graphics capabilities
      • java.awt
      • java.awt.image
      • java.awt.color
      • java.awt.font
      • java.awt.geom
      • java.awt.print
      • java.awt.image.renderable
    • Uses class java.awt.Graphics2D
      • Extends class java.awt.Graphics
java 2d api16
Java 2D API
  • when using Swing overide paintComponent instead of paint.
java 2d api17
Java 2D API
  • Java 2D shapes
    • Package java.awt.geom
      • Ellipse2D.Double
      • Rectangle2D.Double
      • RoundRectangle2D.Double
      • Arc3D.Double
      • Lines2D.Double
java 2d api18
Java 2D API
  • The Java 2D API introduces java.awt.Graphics2D , a new type of Graphics object.
  • Graphics2D extends the Graphics class to provide access to the enhanced graphics and rendering features of the Java 2D API.
  • To use Java 2D API features, you cast the Graphics object passed into a component's rendering method to a Graphics2D object.

public void Paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

...

}

java 2d drawing process step 1
Java 2D Drawing Process: Step 1
  • Cast Graphics object to Graphics 2D

public void paintComponent(Graphics g) {

super.paingComponent(g); // Typical Swing

Graphics2d g2d = (Graphics2d) g;

g2d.doSomeStuff(...);

...

}

  • Note
    • All methods that return Graphics in Java 1.1 return Graphics2D in Java 2
      • paint, paintComponent
      • getGraphics
java 2d drawing process step 2
Java 2D Drawing Process: Step 2
  • Set pen parameters
    • g2d.setPaint(fillColorOrPattern);
    • g2d.setStroke(penThicknessOrPattern);
    • g2d.setComposite(someAlphaComposite);
    • g2d.setFont(someFont);
    • g2d.translate(...);
    • g2d.rotate(...);
    • g2d.scale(...);
    • g2d.shear(...);
    • g2d.setTransform(someAffineTransform);
java 2d drawing process step 3
Java 2D Drawing Process: Step 3
  • Create a Shape object.

Rectangle2D.Double rect = ...;

Ellepse2D.Double ellipse = ...;

Polygon poly = ...;

GeneralPath path = ...;

// satisfies Shape interface

SomeShapeYouDefined shape = ...;

  • Note
    • Most shapes are in the java.awt.geom package
    • There is a corresponding Shape class for most of the drawXxx methods of Graphics
java 2d drawing process step 4
Java 2D Drawing Process: Step 4
  • Draw an outlined or filled version of the Shape

g2d.draw(someShape);

g2d.fill(someShape);

  • The legacy methods are still supported
    • drawString
    • drawLine, drawRect, fillRect
ad