Graphics and Java 2D - PowerPoint PPT Presentation

About This Presentation
Title:

Graphics and Java 2D

Description:

public Font( String name, int style, int size ) Creates a Font object with the specified font, ... Graphics methods for manipulating Fonts public Font getFont() ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 23
Provided by: cpEngCh
Category:
Tags: font | graphics | java | size | unicode

less

Transcript and Presenter's Notes

Title: Graphics and Java 2D


1
Graphics and Java 2D
2
Introduction
  • Javas 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

3
IntroductionClasses and Interfaces
4
Introduction
  • Javas 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

5
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 Javas portability
  • Class Component method paint takes Graphics
    object
  • public void paint( Graphics g )
  • Called through method repaint

6
Color Control
  • Class Color
  • Defines methods and constants for manipulating
    colors
  • Colors are created from red, green and blue
    components
  • RGB values

7
Color constant and value
8
Color methods color-related Graphic methods
9
1 // ShowColors.java 2 // Choosing
colors with JColorChooser. 3 import
java.awt. 4 import java.awt.event. 5
import javax.swing. 6 7 public
class 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
10
24 new ActionListener() //
anonymous inner class 25 26 //
display JColorChooser when user clicks button 27
public void 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

11
47 // execute application 48 public
static void main( String args ) 49 50
ShowColors application new
ShowColors() 51 application.setDefaultCl
oseOperation( JFrame.EXIT_ON_CLOSE ) 52
53 // end class ShowColors2
12
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)

13
Font-related methods and constants
14
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 )
15
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

16
Java 2D API
  • when using Swing overide paintComponent instead
    of paint.

17
Java 2D API
  • Java 2D shapes
  • Package java.awt.geom
  • Ellipse2D.Double
  • Rectangle2D.Double
  • RoundRectangle2D.Double
  • Arc3D.Double
  • Lines2D.Double

18
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 ...
19
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

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

21
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

22
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
Write a Comment
User Comments (0)
About PowerShow.com