Universidad Carlos III de Madrid

Ingeniería de Telecomunicación

Enero-Mayo 2010 / January-May 2010

Graphical User Interfaces

Objectives Section Learning Objectives

Learning Objectives for Graphical User Interfaces

  • Identifying the differences between a graphical interface and a text-based one (Bloom 1*)

  • Describing the basic architecture of a graphical application (Bloom 1)

  • Enumerating and describing the phases in a graphical interface creation process (Bloom 1)

  • Identifying the main elements conforming a graphical interface (Bloom 1*)

  • Setting in place and using the main elements conforming a graphical interface (Bloom 1)

  • Explaining the concept of Events Oriented Programming (Bloom 1*)

  • Adding behaviour to a graphical element (Bloom 1*)

  • Recognizing the elements in the Swing library and their expected features (Bloom 1)

  • Describing the Swing basic elements, their usefulness and how to use them: windows, panels, atomic elements, layouts and coordinates (Bloom 1)

  • Explaining and using the contentPane (Bloom 1)

  • Describing the Java's events model 1.1 dinamics (Bloom 1)

  • Using the Listeners (Bloom 1*)

  • Linking listeners to graphical elements (Bloom 1*)

  • Explaining how events are delivered to listeners (Bloom 1)

  • Enumerating and explaining the methods to be included in order to used a specific listener (Bloom 1)

  • Obtaining more information on an event from Event objects (Bloom 1)

  • Arguing the importance of graphical interfaces (Bloom 2)

  • Explaining why the graphical interfaces programming is an instance of Events Oriented Programming (Bloom 2)

  • Describing the pros and cons of the different architectures for a graphical application in Java (Bloom 2)

  • Explaining the function of each phase in the graphical interface creation process and how it contributes to the final aim (Bloom 2)

  • Distinguishing the usefulness of each element in a graphical interface (Bloom 2*)

  • Arguing on the philosophy of the events orientation (Bloom 2)

  • Distinguishing between Listener and Adapter (Bloom 2)

  • Explaining the differences among listener, event and listener's method (Bloom 2*)

  • Letting an application waiting for an event (Bloom 2*)

  • Applying all the concepts seen to other graphical elements (Bloom 2)

  • Searching for information on graphical elements in the Java API (Bloom 2*)

  • Choosing the most suitable graphical elements for every occasion, justifying the selection (Bloom 2)

  • Selection the most suitable containers structure (Bloom 3)

  • Properly distributing the information in the interfaz by using panels and coordinates and layouts in a sound way (Bloom 3*)

  • Selecting and properly using basic atomic elements (buttons, labels and text-fields) (Bloom 3*)

  • Proposing in a justified way an architecture for a specific graphical application, including the listeners to be used and where to put them (Bloom 3)

  • Programming listeners to implement specific functionalities (Bloom 3)

  • Asking for information on events (Bloom 3)

  • Analysing a graphical interface's code, predicting its behaviour, and being able to modify and extend it later (Bloom 4*)

  • Analysing a complex wording describing a graphical interface (Bloom 4*)

  • Analysing a graphical interface programming problem not fully specified and developing it thoroughly (Bloom 4)

  • Creating a complete graphical interface from a set of specifications (Bloom 5)

  • Integrating the graphical structures with the rest of the program (Bloom 5*)

  • Designing and programming complete architectures for an application, including both the graphical aspects and the information process (Bloom 5)

  • Publicly defending the suitableness of a graphical interface solution for a given problem (Bloom 6)

  • Evaluating a graphical interface solution proposed by others (Bloom 6)

Lecture Section Session 1 (lecture): Graphical User Interfaces

Material

Lab Section Session 2 (lab): Graphical User Interfaces

Material

Material (with solutions)

Learning Pills Section Learning Pills

¿DID YOU KNOW THAT...?

AWT (Abstract Window Toolkit) and Swing complement rather than replace each other.

¿DID YOU KNOW THAT...?

The strength of the MVC design pattern (Model View Controller) consists on its ability to separate and isolate the business layer from the graphical interface.

¿DID YOU KNOW THAT...?

Swing follows the MVC pattern.

¿DID YOU KNOW THAT...?

java.awt.FlowLayout class is not the more suitable when you don't know the final size of the parent container.

¿DID YOU KNOW THAT...?

java.awt.GridLayout class has a singular behavior associated with the size of the components it includes.

¿DID YOU KNOW THAT...?

JButton, JCheckbox, JRadioButton, JMenu classes... inherit from the same class.

¿DID YOU KNOW THAT...?

To handle the GUI more efficiently, you can indicate a specific button that will run when you press the intro key.

¿DID YOU KNOW THAT...?

You can change the LookAndFeel of a graphical interface at runtime.

¿DID YOU KNOW THAT...?

Similar to the event handlers that are triggered when user performs an action (ActionListener), there is a collection of handlers devoted to detect different types of events.

¿DID YOU KNOW THAT...?

It is necessary to first activate a component to display it properly.

¿DID YOU KNOW THAT...?

It's faster and more efficient to use BorderFactory class to build borders.