Skip to Content
Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition
book

Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition

by Ivor Horton
December 2004
Beginner
1512 pages
43h 39m
English
Wrox
Content preview from Ivor Horton's Beginning Java™ 2, JDK™ 5th Edition

18.3. Avoiding Deadlocks in GUI Code

Preparing the application window and any components it contains and displaying it is described as realizing the window. Calling setVisible() for an application window object realizes the window. As I said in the previous section, once an application GUI has been realized, modifying or querying it on the main thread can cause deadlock because user interactions with the GUI, such as clicking a menu item, are handled in the event-dispatching thread. There is also the rare possibility with some types of Swing components that deadlocks can occur even when it is not apparent that you are modifying the GUI after it has been realized. You can avoid any possibility of deadlock in your application arising from your GUI creation code by arranging to execute all the code that creates the GUI on the event-dispatching thread.

The javax.swing.SwingUtilities class provides the static invokeLater() method, which makes creating the GUI on the event-dispatching thread very easy. The invokeLater() method expects an argument of type Runnable, which is a reference to an object of a type that implements the Runnable interface. A simple way of defining a Runnable object that will create the GUI for an application is to use an anonymous class. Let's see how that works.

Try It Out: Creating the GUI on the Event-Dispatching Thread

You can modify the last version of the Sketcher application in Chapter 17 to use the invokeLater() method from the SwingUtilities class. ...

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

Ivor Horton's Beginning Java®, Java 7 Edition

Ivor Horton's Beginning Java®, Java 7 Edition

Ivor Horton
PURE Java™ 2

PURE Java™ 2

Kenneth Litwak
Just Java™ 2

Just Java™ 2

Peter van der Linden

Publisher Resources

ISBN: 9780764568749Purchase book