Gui Programming in Java: Tim Mckenna Seneca@York

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 16

GUI Programming in Java

Tim McKenna Seneca@York

GUI Programming Concepts

conventional programming:
sequence of operations is determined by the program what you want to happen, happens when you want it

event-driven programming:
sequence of operations is determined by the users interaction with the applications interface anything that can happen, happens at any time

GUI Design Concepts


a wealth of information creates a poverty of attention - Herbert Simon Principles of good GUI Design IBM's Design concepts Saul Greenberg's HCI pages Tim's HCI notes

GUI Programming Concepts in Java

Java GUI ("Swing") has components Windows GUI has controls Unix GUI has widgets examples: labels, buttons, check boxes, radio buttons, text input boxes, pull down lists Java Swing components: JLabel, JButton,
JCheckBox, JRadioButton, JTextField, JTextArea, JComboBox

Java GUI history: the AWT

AWT(JDK 1.0, 1.1): Abstract Window Toolkit package: java.awt, java.awt.event heavyweight components using native GUI system elements used for applets until most browsers supported JRE 1.2

Swing in Java

Swing(Java 2, JDK 1.2+) lightweight components that do not rely on the native GUI or OS look and feel of Swing components are identical on different platforms can be customized Swing inherits from AWT AWT still used for events, layouts

Swing Components in Java

advanced GUI support. e.g. drag-and-drop package names: javax.swing, javax.swing.event components inherit from JComponent components are added to a top-level container: JFrame, JDialog, or JApplet.

running a Swing application

java -Dswing.aatext=true MySwingClass


the option sets the system property "swing.aatext" to "true" to enable antialiasing for every JComponent

javaw runs a GUI without the console window e.g. HelloWorldSwing.java

Basic GUI Programming Steps in Java

declare a container and components add components to one or more containers using a layout manager register event listener(s) with the components create event listener method(s)

Basic GUI Programming Concepts in Java


Example: JFrameDemoTM.java,

JFrameDemoTM2.java, JFrameDemo.java container : a screen window/applet window/panel that groups and arranges GUI components GUI component: an object with visual representation Swing containers: JFrame, JApplet, JPanel

AWT containers: Frame, Applet, Panel

GUI Programming: The Java Approach

event-driven programming
a piece of code (i.e. event handler) is attached to a GUI component an event handler is called when an event (e.g. a mouse click) is activated / fired

The Delegation Event Model in Java


processing of an event is delegated to an object (the listener) in the program

Event-driven Programming in Java


event source: a GUI component that


generates / fires an event

event: a user interaction


(e.g. a click on the button)

event listener: an object that has implemented event handlers to react to an event

Event Handling in Java


the delegation event model
- event listeners must be registered with an event source in order to receive notification

Event Handling in Java

registration of an event listener


- write a class that implements an

[event type]Listener interface


- create an instance of that class (i.e. an event listener) - register the listener with a GUI component: add[event type]Listener ( <an event listener> )

Event Handling in Java

a listener interface has a list of standard event handlers (i.e. methods) API documentation - java.awt.event - event classes - listener interfaces - adapter classes

Event Handling in Java

different ways of coding the event listeners


JFrameDemoTM.java uses named inner classes. JFrameDemoTM2.java uses named inner classes and shows how to consolidate window closing from two different events. JFrameDemo.java does not use inner classes.

You might also like