Title: Java Swing Lecture 1 An Introduction
1Java Swing - Lecture 1An Introduction
- Chris Coleman
- (cqc_at_cs.nott.ac.uk)
- http//www.cs.nott.ac.uk/cqc/G5BUID
2Timeline
- 27th Oct (Now) - Java Necessaries, Swing Basics
- 28th Oct - Components and Containers
- 3rd Oct - Layout Management
- 17th Nov - Event Handling and Listeners
- 18th Nov - Graphics with Swing
- 8th Nov Problem Class Session
- Labs Start Week Beginning 7th Nov. Time TBA.
3Before we Start (1)
- Swing is all Java.
- You must know about, and understand
- Classes / Objects
- Method Overloading
- Inheritance
- Polymorphism
- Interfaces
- How to read the Java2 API Documents
4Before We Start (2)
- If Java is a problem learn NOW, not in a month
when the coursework is due! - Labs
- Come to the labs and help is there for both Java
and Swing. - Web
- Use the Sun/Java tutorials
- Plenty of web resources out there, even the PRG
notes - Read a book?
52D interface programming toolkits
- Tcl/Tk
- Motif/UIL
- IDEs (e.g. VB, MSVC/MFC)
- Java AWT the beginnings
- Java JFC Swing (Java2 - JDK gt 1.2)
- JBuilder and other Java IDEs
- etc
6What is Swing?
- A part of The Java Foundation Classes
- Swing
- Look and feel
- Accessibility
- Java 2D (Java 2 onwards)
- Drag and Drop
- etc
- Can be used to build Standalone Apps as well as
Servlets and Applets
7On-line reading and reference
- The Swing connection - http//java.sun.com/product
s/jfc/tsc/ - The JFC Swing trail - http//java.sun.com/docs/boo
ks/tutorial/uiswing/ - Fundamentals of JFC/Swing I II
- http//developer.java.sun.com/developer/onlineTr
aining/
8Books
- Java Swing (1998), Robert Eckstein, Mark Loy,
Dave Wood, O'Reilly - JFC Swing Tutorial, The A Guide to Constructing
GUIs, 2nd Edition (2004) K. Walrath and M.
Campione, Addison Wesley
9Getting started with Swing (1)
- Compiling running programs
- Swing is standard in Java 2 (JDK gt 1.2)
- Use
- javac ltprogram.javagt java ltprogramgt
- Or JCreator / IDE
10Getting started with Swing (2)
- Computer Science Department Stuff
- PCs
- Java 2 (1.5.0) on hard disk at \cs\java
- Unix (tuck and much)
- Java 2 (1.4.2) in /usr/bin (or /usr/java)
- Differences between previous versions
- http//java.sun.com/j2se/1.4.2/docs/guide/swing/Sw
ingChanges.html - http//java.sun.com/j2se/1.5.0/docs/guide/swing/Sw
ingChanges.html - Coursework marked on Win XP JDK 1.5.0
11Getting started with Swing (3)
- Swing, like the rest of the Java API is
subdivided into packages - javax.swing, javax.accessibility,
javax.swing.border - At the start of your code - always
- import javax.swing
- import javax.swing.event
- Most Swing programs also need
- import java.awt.
- import java.awt.event.
12Differences between Swing and AWT (1)
- Never mix Swing and AWT components
- If you know AWT, put J in front of everything
- AWT Button
- Swing JButton
- Swing does all that AWT does, but better and
theres much more of it.
13Differences between Swing and AWT (2)
- Buttons and labels can display images
- Behaviour and appearance of components
- Component shape
- Borders
- Assistive technologies
- Look and feel of the programs GUI
- Windows (but only on Windows, M issues.)
- UNIX
- GTK
- etc
14A typical Swing program
- Consists of multiple parts
- Containers
- Components
- Events
- Graphics
- (Threads)
- Now look at each in turn
15A simple Swing program - Containers
16Remember this about Containers
- The structure of containers is your design
decision and should always be thought through in
advance - particularly for managing components
- nesting containers
- Failure to do so usually either results in a
messy interface, messy code or both.
17A simple Swing program - Components
18Remember this about Components
- There are many components that make your job much
easier. - Often, you will be able to customise an existing
Swing component to do a job for you, instead of
having to start from scratch - Eg can extend (inherit from) the JButton class
and paint a new button over the top
19A simple Swing program - Events
20Remember this about events
- Events as seen by GUIs do not happen all that
often in an application - Consider what is happening between events as well
as during them
21A simple Swing program - Graphics
- Graphics
- Complex drawing and
- shading API.
- Can do far more than
- display images.
     Â
22Remember this about Graphics
- There are many aspects of Swing that allow you to
achieve graphics-like things without actually
using Graphics. - Therefore, you dont have to use them most of the
time, and it is often easier not to.
23A simple Swing program - Threads
- Most simple Swing GUI applications dont require
use of any (extra) threads - As Swing creates event-driven programs, all code
is executed on the event-dispatching thread
24Remember this about Threads
- The single-thread rule
- Once a Swing component has been realized, all
code that might affect or depend on the state of
that component should be executed in the
event-dispatching thread - (with some exceptions)
25How to Learn Swing
- Dont even try.
- Learn general framework principles and design
styles. - Then use the API reference, and Swing Tutorials
to discover detailed usage of each component.
26How to read Java Docs (1)
- Java 2 (1.5.0) API Reference available at
- http//java.sun.com/j2se/1.5.0/docs/api/
- Split into 3 Sections (html frames)
- Top Left Packages
- Bottom Left Classes in Packages
- Main Frame Information about selected Class
27How to read Java Docs (2)
- General idea is find class, and examine main
frame for information. - Main frame pages split into sections
- Package hierarchy implemented interfaces
- Class Description, and links to more info
- Nested Class Summary Detail in separate page
- Fields - 2 types Class (static) and instance,
plus fields inherited from parent classes /
interfaces - Constructor Summary
- Method Summary inherited methods from parents
- Detailed info on all summary sections
28Summary
- Do you know enough Java?
- 2D interface programming toolkits
- JFC/Swing
- AWT and Swing
- Getting started with Swing
- Parts of a simple Swing program
- Tomorrow Components and Containers
- Some source code, and design styles