Skip to Content
J2ME in a Nutshell
book

J2ME in a Nutshell

by Kim Topley
March 2002
Intermediate to advanced
480 pages
18h 40m
English
O'Reilly Media, Inc.
Content preview from J2ME in a Nutshell

The Graphics Clip

Although the previous animation example works, it is rather inefficient. The main problem lies with the way the paint( ) method interacts with the moveAllBlocks( ) method. When the frame timer expires, moveAllBlocks( ) updates the coordinates of all the blocks and then arranges for paint( ) to be called, which then redraws the whole screen. Redrawing the entire screen is, of course, highly inefficient, because most of it has not changed. In fact, when a block moves, all that you really need to do is use the background color to paint the area that it used to occupy and then redraw the block in its new location. Because you can’t get hold of a Graphics object to do this directly within moveAllBlocks( ), you need some way to communicate to the paint( ) method that it doesn’t need to repaint everything. Fortunately, there is a simple way to do this that requires small modifications to both moveAllBlocks( ) and the paint( ) method.

In Example 5-3, moveAllBlocks( ) signals that a repaint is required by calling the Canvas repaint( ) method. The variant of repaint( ) that it uses signals to paint( ) that the whole screen needs to be redrawn, but there is a second version that can be used to pass more information:

public void repaint(int x, int y, int width, int height)

This method defines a rectangle that needs to be repainted, instead of the whole screen. Using this method, moveAllBlocks( ) can be rewritten as shown in Example 5-5 to indicate that only the old and new ...

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

Enterprise J2ME™: Developing Mobile Java™ Applications

Enterprise J2ME™: Developing Mobile Java™ Applications

Michael Juntao Yuan
Java™ Performance

Java™ Performance

Charlie Hunt, Binu John

Publisher Resources

ISBN: 059600253XCatalog PageErrata