Graphics and java 2d
Download
1 / 22

05Graphics and Java 2D - PowerPoint PPT Presentation


  • 273 Views
  • Updated 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

Related searches for 05Graphics and Java 2D

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 '05Graphics 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 l.jpg
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 l.jpg

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 l.jpg
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 l.jpg
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 l.jpg
Color Control

  • Class Color

    • Defines methods and constants for manipulating colors

    • Colors are created from red, green and blue components

      • RGB values




Slide9 l.jpg

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 l.jpg

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 l.jpg

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 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
Java 2D API

  • when using Swing overide paintComponent instead of paint.


Java 2d api17 l.jpg
Java 2D API

  • Java 2D shapes

    • Package java.awt.geom

      • Ellipse2D.Double

      • Rectangle2D.Double

      • RoundRectangle2D.Double

      • Arc3D.Double

      • Lines2D.Double


Java 2d api18 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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