Kyūkei Master Hub
SCS2108 | Phase Study Card
👁️ -- opens | 0%

Phase 7: GUI Programming (AWT & Swing)

Java provides AWT (Abstract Window Toolkit) and Swing for desktop GUI development. Learn the heavyweight vs lightweight distinction and layout management.

1. AWT vs Swing (Crucial Comparison)

Feature AWT (Abstract Window Toolkit) Swing (Java Foundation Classes)
Component Type Heavyweight (uses native OS peer components). Lightweight (written purely in 100% Java).
Platform Dependence Platform dependent (looks like native Windows/Mac OS). Platform independent (Pluggable Look and Feel - PLAF).
Speed & Memory Faster execution, higher OS resource consumption. Slightly slower execution, richer component library.
Package Name java.awt.* (e.g., Button, Frame) javax.swing.* (e.g., JButton, JFrame)

2. Layout Managers

Layout managers automatically position and size GUI components inside a Container:

3. Event Delegation Model

[Event Source (e.g. JButton)] ──(generates ActionEvent)──► [Event Listener (ActionListener)] │ executes actionPerformed()

To handle a button click in Swing:

JButton btn = new JButton("Submit"); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Button Clicked!"); } });

⚡ Quick Self-Test

Q: What is the default layout manager for a Swing JFrame?

Answer: BorderLayout.
A JFrame defaults to BorderLayout, whereas a JPanel defaults to FlowLayout.