Skip to Content
Java 2D Graphics
book

Java 2D Graphics

by Jonathan Knudsen
May 1999
Intermediate to advanced
368 pages
9h 6m
English
O'Reilly Media, Inc.
Content preview from Java 2D Graphics

1.5. Where Do I Get a Graphics2D?

Shapes, text, and images are all ultimately drawn by a Graphics2D object. But where does the Graphics2D come from? As usual, there's more than one way to do it.

1.5.1. Drawing on Components

Every Component that AWT shows on the screen has a paint() method. The system passes a Graphics to this method. In JDK 1.1 and earlier, you could draw on Components by overriding the paint() method and using the Graphics to draw things.

It works exactly the same way in Java 2, except that it's a Graphics2D that is passed to paint(). To take advantage of all the spiffy 2D features, you'll have to perform a cast in your paint() method, like this:

public void paint(Graphics g) {
  Graphics2D g2 = (Graphics2D)g;
  // Now we can do cool 2D stuff.
}

Note that your component may not necessarily be drawn on the screen. The Graphics2D that gets passed to paint() might actually represent a printer or any other output device.

Swing components work almost the same way. Strictly speaking, however, you should implement the paintComponent() method instead of paint(). Swing uses the paint() method to draw child components. Swing's implementation of paint() calls paintComponent() to draw the component itself. You may be able to get away with implementing paint() instead of paintComponent(), but then don't be surprised if the component is not drawn correctly.

1.5.2. Drawing on Images

You can use a Graphics or Graphics2D to draw on images, as well. If you have an Image that ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Computer Graphics for Java Programmers, Second Edition

Computer Graphics for Java Programmers, Second Edition

Leen Ammeraal, Kang Zhang
Java Swing

Java Swing

Robert Eckstein, Marc Loy, Dave Wood
Java Extreme Programming Cookbook

Java Extreme Programming Cookbook

Eric M. Burke, Brian M. Coyner

Publisher Resources

ISBN: 1565924843Catalog PageErrata