DOC PREVIEW
UMD CMSC 132 - Graphical User Interface (GUI)

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1Graphical User Interface (GUI)Nelson Padua-PerezChau-Wen TsengDepartment of Computer ScienceUniversity of Maryland, College ParkGraphical User Interface (GUI)User interfaceInterface between user and computerBoth input and outputAffects usability of computerInterface improving with better hardwareSwitches & light bulbsPunch cards & teletype (typewriter)Keyboard & black/white monitor (text)Mouse & color monitor (graphics)2Graphical User Interface (GUI)GoalPresent information to users clearly & conciselyMake interface easy to use for usersMake software easy to implement / maintain for programmersGraphical User Interface (GUI)Design issuesEase of useEase of understandingAbility to convey informationMaintainabilityEfficiency3GUI TopicsEvent-driven programmingModel-View-Controller (MVC) PatternGUI elementsJava GUI classesEvent-driven ProgrammingNormal (control flow-based) programmingApproachStart at main()Continue until end of program or exit()Event-driven programmingUnable to predict time & occurrence of eventApproachStart with main()Build GUIAwait events (& perform associated computation)4Event-driven Programming in JavaDuring implementation Implement event listeners for each eventUsually one event listener class per widgetAt run timeRegister listener object with widget objectJava generates event object when events occurJava then passes event object to event listenerExample of observer design patternEvent-driven Programming in JavaExample listeners & actions causing eventActionEvent ⇒ clicking button in GUICaretEvent ⇒ selecting portion of text in GUI FocusEvent ⇒ component gains / loses focus KeyEvent ⇒ pressing key ItemEvent ⇒ selecting item from pull-down menuMouseEvent ⇒ dragging mouse over widgetTextEvent ⇒ changing text within a fieldWindowEvent ⇒ closing a window5Model-View-Controller (MVC) PatternDeveloped at Xerox PARC in 1978Separates GUI into 3 componentsModel ⇒ application dataView ⇒ visual interfaceController ⇒ user interaction ModelViewControllerMVC Interaction Order1. User performs action, controller is notified2. Controller may request changes to model 3. Controller may tell view to update4. Model may notify view if it has been modified5. View may need to query model for current data6. View updates display for userModelViewController1234,566MVC Pattern – AdvantagesSeparates data from its appearanceMore robustEasier to maintainProvides control over interfaceEasy to support multiple displays for same dataModelModelGUIGUIGUIMVC Pattern – ModelContains application & its data Provide methods to access & update dataInterface defines allowed interactionsFixed interface enable both model & GUIs to be easily pulled out and replacedExamplesText documentsSpreadsheetsWeb browserVideo games7MVC Pattern – ViewProvides visual representation of modelMultiple views can display model at same timeExample: data represented as table and graphWhen model is updated, all its views are informed & given chance to update themselvesMVC Pattern – ControllerUsers interact with the controllerInterprets mouse movement, keystrokes, etc.Communicates those activities to the model Interaction with model indirectly causes view(s) to update8Principles of GUI DesignModel Should perform actual workShould be independent of the GUIBut can provide access methodsController Lets user control what work the program is doingDesign of controller depends on modelViewLets user see what the program is doingShould not display what controller thinks is happening (base display on model, not controller)Principles of GUI DesignCombining controller & viewAppropriate if very interdependentEspecially in small programsSeparation of concernsNever mix model code with GUI codeView should represent model as it really isNot some remembered statusController should talk to model and viewAvoid manipulate them


View Full Document

UMD CMSC 132 - Graphical User Interface (GUI)

Documents in this Course
Notes

Notes

8 pages

Recursion

Recursion

12 pages

Sorting

Sorting

31 pages

HTML

HTML

7 pages

Trees

Trees

19 pages

HTML

HTML

18 pages

Trees

Trees

19 pages

Honors

Honors

19 pages

Lecture 1

Lecture 1

11 pages

Quiz #3

Quiz #3

2 pages

Hashing

Hashing

21 pages

Load more
Download Graphical User Interface (GUI)
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Graphical User Interface (GUI) and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Graphical User Interface (GUI) 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?