Java Swing Tutorials - Herong's Tutorial Examples - v4.31, by Herong Yang
JFrame Thread Behavior with JDK 8 to 12
This section provides a tutorial example on JFrame Thread behavior with JDK 1.8 to JDK 12.
I also tested the same program in JDK 8 to JDK 15. The result is different:
Test 1 - Run FrameThreads.java with JDK 15 in a command window and wait:
herong> java -version java version "15" 2020-09-15 Java(TM) SE Runtime Environment (build 15+36-1562) Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing) herong> java FrameThreads.java Active thread = main Active thread = AWT-EventQueue-0 Interrupting thread = AWT-EventQueue-0
Noticed that the "AWT-Shutdown" and "AWT-Windows" threads are not there anymore. They are probably moved to the "system" thread group now from the "main" thread group. The interruption did sent to the AWT-EventQueue-0 threat. But the 3 Swing frames were displayed on the screen forever.
Test 2 - Run FrameThreads.java in a command window, hide 3 frames behind another window and wait. I got the same results as test 1.
This tells me that AWT packages in JDK 1.8 to JDK 15 are still having some issues if its threads are interrupted. But it behaves consistently now.
Table of Contents
Introduction of Java Swing Package
Graphics Environment of the Local System
Creating Frames with Sizes and Locations
Closing Frame and Terminating Application
Listing and Interrupting AWT Threads
"AWT blocker activation interrupted" Error in JDK 1.6
►JFrame Thread Behavior with JDK 8 to 12
Displaying Chinese Characters in Frame Title
Drawing Graphics - Using paint() on Frame
Drawing Graphics - Using paint() on Component
Drawing Graphics - Using paint() on Content Pane
Drawing Chinese Characters on Frames
JCheckBox - Swing Check Box Class
JRadioButton - Swing Radio Button Class
JTextField - Swing Text Field Class
JComboBox - Swing Combo Box Class
Menu Bar, Menus, Menu Items and Listeners
Creating Internal Frames inside the Main Frame
Layout of Components in a Container
JEditorPane - The Editor Pane Class
SwingWorker - The Background Task Worker
AWT (Abstract Windows Toolkit)