Software Construction Lecture 11 GUI Programming in Java




















- Slides: 20

Software Construction Lecture 11 GUI Programming in Java 1

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 2

GUI Design Concepts Principles of good GUI Design IBM's Design concepts Saul Greenberg's HCI pages Tim's HCI notes 3

GUI Programming Concepts in Java GUI has components Windows GUI has controls Unix GUI has widgets examples: labels, buttons, check boxes, radio buttons, text input boxes, pull down lists Swing components: JLabel, JButton, JCheck. Box, JRadio. Button, JText. Field, JText. Area, JCombo. Box 4

Java GUI history: the AWT 5 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 still used for events, layouts 6

Swing Components in Java 7 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 My. Swing. Class 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 8

Basic GUI Programming Steps in Java 9 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: JFrame. Demo. java, JFrame. Demo. TM. java container : a screen window/applet window/panel that groups and arranges GUI components 10 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 11 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: a user interaction (e. g. a click on the button) event listener: an object that has encapsulated event handlers to react to an event 12

Event Handling in Java the delegation event model 13 - a GUI element “delegates” the processing of an event to another piece of code (i. e. an event handler) - the event source generates/fires an event and “sends” it to event listeners

Event Handling in Java the delegation event model - event listeners must be registered with an event source in order to receive notification Example: JButton. Demo. java, JButton. Demo 2. java 14

Event Handling in Java registration of an event listener - write a class that implements an <event name>Listener interface - create an instance of that class (i. e. an event listener) - register the listener with a GUI component: add<event name>Listener ( <an event listener> ) 15

Event Handling in Java 16 a listener interface has a list of standard event handlers (i. e. methods) API documentation java. awt. event classes listener interfaces adapter classes

Event Handling in Java different ways of coding the event listeners - use of another top-level class: JButton. Demo - anonymous inner classes: JButton. Demo 2, JFrame. Demo 2 - use of an adapter class: JFrame. Demo 3 JFrame. Demo. TM 2. java uses named inner classes and shows how to consolidate window closing from two different events. 17

Handling of Mouse Events Mouse. Listener mouse. Pressed( ), mouse. Clicked( ) mouse. Released( ), mouse. Entered( ) mouse. Exited( ) Mouse. Motion. Listener mouse. Dragged( ), mouse. Moved( ) 18 Mouse. Adapter, Mouse. Motion. Adapter Example: Mouse. Demo. java

Multiple Event Sources Example: Action. Applet 2. java &. html one listener for multiple event sources GUI and graphics programming http: //cs. senecac. on. ca/~pliu/appletdemo. html 19

Review GUI Java GUI Components Event Listeners Delegates Event Sources 20