Upload
satish-verma
View
350
Download
1
Embed Size (px)
Citation preview
GUI Programming in Java
Tim McKennaSeneca@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 user’s interaction with the application’s 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 anti-aliasing for every JComponent
javaw runs a GUI without the console window
e.g. HelloWorldSwing.java
Basic GUI Programming Stepsin 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.