Model-View-Controller

Size: px
Start display at page:

Download "Model-View-Controller"

Transcription

1 Model-View-Controller ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 3, 2017

2 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller

3 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic

4 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic View/Controller: Presents a visual depiction of your model along with controls to interact with it

5 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic View/Controller: Presents a visual depiction of your model along with controls to interact with it It is usually desirable, but not always possible to sparate the View and Controller

6 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic View/Controller: Presents a visual depiction of your model along with controls to interact with it It is usually desirable, but not always possible to sparate the View and Controller Example of poor separation: Paint1; Good separation: Paint2, GameOfLife

7 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic View/Controller: Presents a visual depiction of your model along with controls to interact with it It is usually desirable, but not always possible to sparate the View and Controller Example of poor separation: Paint1; Good separation: Paint2, GameOfLife Motivation:

8 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic View/Controller: Presents a visual depiction of your model along with controls to interact with it It is usually desirable, but not always possible to sparate the View and Controller Example of poor separation: Paint1; Good separation: Paint2, GameOfLife Motivation: Adherance to the Single-Responsibility Principle

9 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic View/Controller: Presents a visual depiction of your model along with controls to interact with it It is usually desirable, but not always possible to sparate the View and Controller Example of poor separation: Paint1; Good separation: Paint2, GameOfLife Motivation: Adherance to the Single-Responsibility Principle Re-use of components (e.g. GridModel, GridPanel)

10 Introduction In designing an application with a Graphical User Interface (GUI) you should work to maintain a separation between the Model and the View/Controller Model: Represents the underlying data and domain logic View/Controller: Presents a visual depiction of your model along with controls to interact with it It is usually desirable, but not always possible to sparate the View and Controller Example of poor separation: Paint1; Good separation: Paint2, GameOfLife Motivation: Adherance to the Single-Responsibility Principle Re-use of components (e.g. GridModel, GridPanel) Protect the Model from changes in GUI technology to support portability

11 Information Flow

12 Usually the view depends on the model

13 Usually the view depends on the model More specifically, the view has-a model

14 Usually the view depends on the model More specifically, the view has-a model To provide further separation, we would prefer the view to depend on an interface (i.e. DIP)

15 Usually the view depends on the model More specifically, the view has-a model To provide further separation, we would prefer the view to depend on an interface (i.e. DIP)

16 Usually the view depends on the model More specifically, the view has-a model To provide further separation, we would prefer the view to depend on an interface (i.e. DIP)

17 Usually the view depends on the model More specifically, the view has-a model To provide further separation, we would prefer the view to depend on an interface (i.e. DIP) What if we have multiple views? Also, what if the model can decide on its own to make changes? Use Observer:

18 Usually the view depends on the model More specifically, the view has-a model To provide further separation, we would prefer the view to depend on an interface (i.e. DIP) What if we have multiple views? Also, what if the model can decide on its own to make changes? Use Observer: ModelImplementation extends Observable and implements Model

19 Usually the view depends on the model More specifically, the view has-a model To provide further separation, we would prefer the view to depend on an interface (i.e. DIP) What if we have multiple views? Also, what if the model can decide on its own to make changes? Use Observer: ModelImplementation extends Observable and implements Model View classes will implement Observer

20 Fine-Grained Models in Swing The designers of Swing implemented Model/View separation even for individual JComponents

21 Fine-Grained Models in Swing The designers of Swing implemented Model/View separation even for individual JComponents e.g. Both JSlider and JScrollBar have an underlying BoundedRangeModel

22 Fine-Grained Models in Swing The designers of Swing implemented Model/View separation even for individual JComponents e.g. Both JSlider and JScrollBar have an underlying BoundedRangeModel BoundedRangeModel stores the current value and the range from minimum to maximum (among other things)

23 Fine-Grained Models in Swing The designers of Swing implemented Model/View separation even for individual JComponents e.g. Both JSlider and JScrollBar have an underlying BoundedRangeModel BoundedRangeModel stores the current value and the range from minimum to maximum (among other things) Example: SliderAndScrollBar.java

Swing: Building GUIs in Java

Swing: Building GUIs in Java Swing: Building GUIs in Java ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland February 13, 2017 Outline 1 Introduction 2 Aside: Inner

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Swing: Building GUIs in Java

Swing: Building GUIs in Java Swing: Building GUIs in Java ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland February 13, 2017 Outline 1 Introduction 2 Aside: Inner

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Swing. By Iqtidar Ali

Swing. By Iqtidar Ali Swing By Iqtidar Ali Background of Swing We have been looking at AWT (Abstract Window ToolKit) components up till now. Programmers were not comfortable when doing programming with AWT. Bcoz AWT is limited

More information

FirstSwingFrame.java Page 1 of 1

FirstSwingFrame.java Page 1 of 1 FirstSwingFrame.java Page 1 of 1 2: * A first example of using Swing. A JFrame is created with 3: * a label and buttons (which don t yet respond to events). 4: * 5: * @author Andrew Vardy 6: */ 7: import

More information

Outline. Software Rots

Outline. Software Rots Outline Design Principles: Part 1 ENGI 5895: Software Design 1 The Need for Design Principles Andrew Vardy 2 Refactoring Faculty of Engineering & Applied Science Memorial University of Newfoundland January

More information

CSE 331. Model/View Separation and Observer Pattern

CSE 331. Model/View Separation and Observer Pattern CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia http://www.cs.washington.edu/331/ 1 Model and

More information

Organizing Presentation Logic

Organizing Presentation Logic Organizing Presentation Logic Chien-Tsun Chen Department of Computer Science and Information Engineering National Taipei University of Technology, Taipei 106, Taiwan ctchen@ctchen.idv.tw Otc. 25 2004 1

More information

CS 349 / SE 382 Custom Components. Professor Michael Terry February 6, 2009

CS 349 / SE 382 Custom Components. Professor Michael Terry February 6, 2009 CS 349 / SE 382 Custom Components Professor Michael Terry February 6, 2009 Today s Agenda Midterm Notes A2 Scroll XOR demo A3 super special sneak preview Clarifications on Fitt s Law Undo Custom components

More information

Design Patterns: Part 2

Design Patterns: Part 2 Design Patterns: Part 2 ENGI 5895: Software Design Andrew Vardy with code samples from Dr. Rodrigue Byrne and [Martin(2003)] Faculty of Engineering & Applied Science Memorial University of Newfoundland

More information

CS410G: GUI Programming. The Model/View/Controller Pattern. Model. Controller. View. MVC is a popular architecture for building GUIs

CS410G: GUI Programming. The Model/View/Controller Pattern. Model. Controller. View. MVC is a popular architecture for building GUIs CS410G: GUI Programming The Model/View/Controller design pattern provides a clean distinction between the your application s data (model), your GUI (view), and the how they interact (controller). Many

More information

Model-View-Controller

Model-View-Controller Model-View-Controller Motivation The MVC pattern Using the Observer pattern in Java 1 MVC Rationale Multiple views, loosely coupled to the underlying data model. 2 Multiple Views 3 Multiple Views Many

More information

Chapter 17 Creating User Interfaces

Chapter 17 Creating User Interfaces Chapter 17 Creating User Interfaces 1 Motivations A graphical user interface (GUI) makes a system user-friendly and easy to use. Creating a GUI requires creativity and knowledge of how GUI components work.

More information

Chapter 12 GUI Basics

Chapter 12 GUI Basics Chapter 12 GUI Basics 1 Creating GUI Objects // Create a button with text OK JButton jbtok = new JButton("OK"); // Create a label with text "Enter your name: " JLabel jlblname = new JLabel("Enter your

More information

Graphical User Interfaces. Swing. Jose Jesus García Rueda

Graphical User Interfaces. Swing. Jose Jesus García Rueda Graphical User Interfaces. Swing Jose Jesus García Rueda Introduction What are the GUIs? Well known examples Basic concepts Graphical application. Containers. Actions. Events. Graphical elements: Menu

More information

Lecture 18 Java Graphics and GUIs

Lecture 18 Java Graphics and GUIs CSE 331 Software Design and Implementation The plan Today: introduction to Java graphics and Swing/AWT libraries Then: event-driven programming and user interaction Lecture 18 Java Graphics and GUIs None

More information

Graphics in Swing. Engineering 5895 Faculty of Engineering & Applied Science Memorial University of Newfoundland

Graphics in Swing. Engineering 5895 Faculty of Engineering & Applied Science Memorial University of Newfoundland Graphics in Swing Engineering 5895 Faculty of Engineering & Applied Science Memorial University of Newfoundland 1 paintcomponent and repaint Each Swing component has the following paint methods: void paintcomponent(

More information

Lecture 4: UI Software Architecture. Fall UI Design and Implementation 1

Lecture 4: UI Software Architecture. Fall UI Design and Implementation 1 Lecture 4: UI Software Architecture Fall 2006 6.831 UI Design and Implementation 1 1 UI Hall of Fame or Shame? Source: Interface Hall of Shame Fall 2006 6.831 UI Design and Implementation 2 This message

More information

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Hal Perkins Winter 2018 Java Graphics and GUIs 1 The plan Today: introduction to Java graphics and Swing/AWT libraries Then: event-driven programming and user interaction

More information

Coverage of Part 2. A Brief Introduction to Java for C++ Programmers: Part 2. import: using packages

Coverage of Part 2. A Brief Introduction to Java for C++ Programmers: Part 2. import: using packages Coverage of Part 2 A Brief Introduction to Java for C++ Programmers: Part 2 ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland This second

More information

Unit 4: Block Diagram Reduction

Unit 4: Block Diagram Reduction Block Diagram Reduction Signal-Flow Graphs Unit 4: Block Diagram Reduction Engineering 5821: Control Systems I Faculty of Engineering & Applied Science Memorial University of Newfoundland February 15,

More information

Announcements. Introduction. Lecture 18 Java Graphics and GUIs. Announcements. CSE 331 Software Design and Implementation

Announcements. Introduction. Lecture 18 Java Graphics and GUIs. Announcements. CSE 331 Software Design and Implementation CSE 331 Software Design and Implementation Lecture 18 Java Graphics and GUIs Announcements Leah Perlmutter / Summer 2018 Announcements Quiz 6 due Thursday 8/2 Homework 7 due Thursday 8/2 Regression testing

More information

(Incomplete) History of GUIs

(Incomplete) History of GUIs CMSC 433 Programming Language Technologies and Paradigms Spring 2004 Graphical User Interfaces April 20, 2004 (Incomplete) History of GUIs 1973: Xerox Alto 3-button mouse, bit-mapped display, windows 1981:

More information

SPIN Operating System

SPIN Operating System SPIN Operating System Motivation: general purpose, UNIX-based operating systems can perform poorly when the applications have resource usage patterns poorly handled by kernel code Why? Current crop of

More information

Design Pattern and Software Architecture: IV. Design Pattern

Design Pattern and Software Architecture: IV. Design Pattern Design Pattern and Software Architecture: IV. Design Pattern AG Softwaretechnik Raum E 3.165 Tele.. 60-3321 hg@upb.de IV. Design Pattern IV.1 Introduction IV.2 Example: WYSIWYG Editor Lexi IV.3 Creational

More information

Java: Graphical User Interfaces (GUI)

Java: Graphical User Interfaces (GUI) Chair of Software Engineering Carlo A. Furia, Marco Piccioni, and Bertrand Meyer Java: Graphical User Interfaces (GUI) With material from Christoph Angerer The essence of the Java Graphics API Application

More information

CSE 143. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

CSE 143. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT CSE 143 Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia http://www.cs.washington.edu/331/

More information

Design Principles: Part 2

Design Principles: Part 2 Liskov Substitution Principle (LSP) Dependency-Inversion Principle (DIP) Interface-Segregation Principle (ISP) Design Principles: Part 2 ENGI 5895: Software Design Andrew Vardy Faculty of Engineering &

More information

Threads Implementation. Jo, Heeseung

Threads Implementation. Jo, Heeseung Threads Implementation Jo, Heeseung Today's Topics How to implement threads? User-level threads Kernel-level threads Threading models 2 Kernel/User-level Threads Who is responsible for creating/managing

More information

Outline. Design Principles: Part 2. e.g. Rectangles and Squares. The Liskov Substitution Principle (LSP) ENGI 5895: Software Design.

Outline. Design Principles: Part 2. e.g. Rectangles and Squares. The Liskov Substitution Principle (LSP) ENGI 5895: Software Design. Liskov Substitution Principle (LSP) Dependency-Inversion Principle (DIP) Interface-Segregation Principle (ISP) Liskov Substitution Principle (LSP) Dependency-Inversion Principle (DIP) Interface-Segregation

More information

CS 4120 Lecture 31 Interprocedural analysis, fixed-point algorithms 9 November 2011 Lecturer: Andrew Myers

CS 4120 Lecture 31 Interprocedural analysis, fixed-point algorithms 9 November 2011 Lecturer: Andrew Myers CS 4120 Lecture 31 Interprocedural analysis, fixed-point algorithms 9 November 2011 Lecturer: Andrew Myers These notes are not yet complete. 1 Interprocedural analysis Some analyses are not sufficiently

More information

Java Graphical User Interfaces

Java Graphical User Interfaces Java Graphical User Interfaces 1 The Abstract Windowing Toolkit (AWT) Since Java was first released, its user interface facilities have been a significant weakness The Abstract Windowing Toolkit (AWT)

More information

The C Language Mapping Does it meet the needs of Embedded Real-time Applications?

The C Language Mapping Does it meet the needs of Embedded Real-time Applications? The C Language Mapping Does it meet the needs of Embedded Real-time Applications? S. Aslam-Mir Ph.D. Senior Software Architect 1 Agenda Motivations Key highlights of the mapping Some possible advantages

More information

Dynamic Fine Grain Scheduling of Pipeline Parallelism. Presented by: Ram Manohar Oruganti and Michael TeWinkle

Dynamic Fine Grain Scheduling of Pipeline Parallelism. Presented by: Ram Manohar Oruganti and Michael TeWinkle Dynamic Fine Grain Scheduling of Pipeline Parallelism Presented by: Ram Manohar Oruganti and Michael TeWinkle Overview Introduction Motivation Scheduling Approaches GRAMPS scheduling method Evaluation

More information

IMD PORTFOLIO WORKSHOP Prof. Chris Joslin

IMD PORTFOLIO WORKSHOP Prof. Chris Joslin IMD PORTFOLIO WORKSHOP 2018 Prof. Chris Joslin Overview Portfolio Requirements Formats Submission Review Process Considerations General Q & A + Workshop Review Portfolio Requirements All Portfolios should

More information

Assumptions. History

Assumptions. History Assumptions A Brief Introduction to Java for C++ Programmers: Part 1 ENGI 5895: Software Design Faculty of Engineering & Applied Science Memorial University of Newfoundland You already know C++ You understand

More information

6LPXODWLRQÃRIÃWKHÃ&RPPXQLFDWLRQÃ7LPHÃIRUÃDÃ6SDFH7LPH $GDSWLYHÃ3URFHVVLQJÃ$OJRULWKPÃRQÃDÃ3DUDOOHOÃ(PEHGGHG 6\VWHP

6LPXODWLRQÃRIÃWKHÃ&RPPXQLFDWLRQÃ7LPHÃIRUÃDÃ6SDFH7LPH $GDSWLYHÃ3URFHVVLQJÃ$OJRULWKPÃRQÃDÃ3DUDOOHOÃ(PEHGGHG 6\VWHP LPXODWLRQÃRIÃWKHÃ&RPPXQLFDWLRQÃLPHÃIRUÃDÃSDFHLPH $GDSWLYHÃURFHVVLQJÃ$OJRULWKPÃRQÃDÃDUDOOHOÃ(PEHGGHG \VWHP Jack M. West and John K. Antonio Department of Computer Science, P.O. Box, Texas Tech University,

More information

Agenda. Programming Seminar. By: dr. Amal Khalifa. Coordinate systems Colors Fonts Drawing shapes Graphics2D API

Agenda. Programming Seminar. By: dr. Amal Khalifa. Coordinate systems Colors Fonts Drawing shapes Graphics2D API Agenda Coordinate systems Colors Fonts Drawing shapes Graphics2D API By: dr. Amal Khalifa 1 Programming Seminar @12:30 13:30 pm on Wednesday 9/4/2014 Location : 2.505.01 Painting components 2 Every component

More information

Advanced Java Programming. Swing. Introduction to Swing. Swing libraries. Eran Werner, Tel-Aviv University Summer, 2005

Advanced Java Programming. Swing. Introduction to Swing. Swing libraries. Eran Werner, Tel-Aviv University Summer, 2005 Advanced Java Programming Swing Eran Werner, Tel-Aviv University Summer, 2005 19 May 2005 Advanced Java Programming, Summer 2005 1 Introduction to Swing The Swing package is part of the Java Foundation

More information

CSE 331. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

CSE 331. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT CSE 331 Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia http://www.cs.washington.edu/331/

More information

Welcome to CIS 068! 1. GUIs: JAVA Swing 2. (Streams and Files we ll not cover this in this semester, just a review) CIS 068

Welcome to CIS 068! 1. GUIs: JAVA Swing 2. (Streams and Files we ll not cover this in this semester, just a review) CIS 068 Welcome to! 1. GUIs: JAVA Swing 2. (Streams and Files we ll not cover this in this semester, just a review) Overview JAVA and GUIs: SWING Container, Components, Layouts Using SWING Streams and Files Text

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Lecture 5: Java Graphics

Lecture 5: Java Graphics Lecture 5: Java Graphics CS 62 Spring 2019 William Devanny & Alexandra Papoutsaki 1 New Unit Overview Graphical User Interfaces (GUI) Components, e.g., JButton, JTextField, JSlider, JChooser, Containers,

More information

Design Principles: Part 2

Design Principles: Part 2 Liskov Substitution Principle (LSP) Dependency-Inversion Principle (DIP) Interface-Segregation Principle (ISP) Design Principles: Part 2 ENGI 5895: Software Design Andrew Vardy Faculty of Engineering &

More information

Systems Programming Graphical User Interfaces

Systems Programming Graphical User Interfaces Systems Programming Graphical User Interfaces Julio Villena Román (LECTURER) CONTENTS ARE MOSTLY BASED ON THE WORK BY: José Jesús García Rueda Systems Programming GUIs based on Java

More information

CSE 331. Event- driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

CSE 331. Event- driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT CSE 331 Event- driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT Lecturer: Michael Hotan slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer,

More information

Chapter 0 : MVC review / Threading & Concurrency. CSCI 251 Android App Development

Chapter 0 : MVC review / Threading & Concurrency. CSCI 251 Android App Development Chapter 0 : MVC review / Threading & Concurrency CSCI 251 Android App Development Part I: Model / View / Controller Review (courtesy of Prof. Lambert) TUI vs GUI Text-based I/O Sequential process Direct

More information

CS 251 Intermediate Programming GUIs: Components and Layout

CS 251 Intermediate Programming GUIs: Components and Layout CS 251 Intermediate Programming GUIs: Components and Layout Brooke Chenoweth University of New Mexico Fall 2017 import javax. swing.*; Hello GUI public class HelloGUI extends JFrame { public HelloGUI ()

More information

Mobile-Friendly Web Browsing. Dr. Jun Kong Department of Computer Science North Dakota State University

Mobile-Friendly Web Browsing. Dr. Jun Kong Department of Computer Science North Dakota State University Mobile-Friendly Web Browsing Dr. Jun Kong Department of Computer Science North Dakota State University 1 Motivation Not user friendly to browse regular Web pages on mobile devices Keeping two versions

More information

Packages: Putting Classes Together

Packages: Putting Classes Together Packages: Putting Classes Together 1 Introduction 2 The main feature of OOP is its ability to support the reuse of code: Extending the classes (via inheritance) Extending interfaces The features in basic

More information

Rendering a 3-Dimensional Cube Applet Using Light Weight Java Graphing Library (LWJGL) with Java Swing with NetBeans IDE 6.1

Rendering a 3-Dimensional Cube Applet Using Light Weight Java Graphing Library (LWJGL) with Java Swing with NetBeans IDE 6.1 Jasamine Jackson Hanan Alnizami June 10, 2008 Rendering a 3-Dimensional Cube Applet Using Light Weight Java Graphing Library (LWJGL) with Java Swing with NetBeans IDE 6.1 This project is a step towards

More information

The JFrame Class Frame Windows GRAPHICAL USER INTERFACES. Five steps to displaying a frame: 1) Construct an object of the JFrame class

The JFrame Class Frame Windows GRAPHICAL USER INTERFACES. Five steps to displaying a frame: 1) Construct an object of the JFrame class CHAPTER GRAPHICAL USER INTERFACES 10 Slides by Donald W. Smith TechNeTrain.com Final Draft 10/30/11 10.1 Frame Windows Java provides classes to create graphical applications that can run on any major graphical

More information

2110: GUIS: Graphical User Interfaces

2110: GUIS: Graphical User Interfaces 2110: GUIS: Graphical User Interfaces Their mouse had a mean time between failure of a week it would jam up irreparably, or... jam up on the table--... It had a flimsy cord whose wires would break. Steve

More information

MOBILE COMPUTING 1/20/18. How many of you. CSE 40814/60814 Spring have implemented a command-line user interface?

MOBILE COMPUTING 1/20/18. How many of you. CSE 40814/60814 Spring have implemented a command-line user interface? MOBILE COMPUTING CSE 40814/60814 Spring 2018 How many of you have implemented a command-line user interface? How many of you have implemented a graphical user interface? HTML/CSS Java Swing.NET Framework

More information

Installing Hortonworks Data Platform 2.1 Technical Preview VirtualBox on Mac

Installing Hortonworks Data Platform 2.1 Technical Preview VirtualBox on Mac Installing Hortonworks Data Platform 2.1 Technical Preview VirtualBox on Mac Getting Ready to install on Mac using Oracle VirtualBox Use this section to prepare for your installation. Prerequisites To

More information

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Kevin Zatloukal Fall 2017 Java GUIs (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins, Zach Tatlock) Reminders HW8 due today Section tomorrow

More information

Contents Introduction 1

Contents Introduction 1 SELF-STUDY iii Introduction 1 Course Purpose... 1 Course Goals...1 Exercises... 2 Scenario-Based Learning... 3 Multimedia Overview... 3 Assessment... 3 Hardware and Software Requirements... 4 Chapter 1

More information

Object-Oriented Programming Design. Topic : Graphics Programming GUI Part I

Object-Oriented Programming Design. Topic : Graphics Programming GUI Part I Electrical and Computer Engineering Object-Oriented Topic : Graphics GUI Part I Maj Joel Young Joel.Young@afit.edu 15-Sep-03 Maj Joel Young A Brief History Lesson AWT Abstract Window Toolkit Implemented

More information

Introduction to Graphical User Interfaces (GUIs) Lecture 10 CS2110 Fall 2008

Introduction to Graphical User Interfaces (GUIs) Lecture 10 CS2110 Fall 2008 Introduction to Graphical User Interfaces (GUIs) Lecture 10 CS2110 Fall 2008 Announcements A3 is up, due Friday, Oct 10 Prelim 1 scheduled for Oct 16 if you have a conflict, let us know now 2 Interactive

More information

Chapter 13 GUI Basics. Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved.

Chapter 13 GUI Basics. Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved. Chapter 13 GUI Basics 1 Motivations The design of the API for Java GUI programming is an excellent example of how the object-oriented principle is applied. In the chapters that follow, you will learn the

More information

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing Introduction to Graphical Interface Programming in Java Introduction to AWT and Swing GUI versus Graphics Programming Graphical User Interface (GUI) Graphics Programming Purpose is to display info and

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming 1. Graphical User Interfaces OOP10 - M. Joldoş - T.U. Cluj 1 GUI A Graphical User Interface (GUI pronounced "goo-ee") presents a userfriendly mechanism for interacting with

More information

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm } Abstract Window Toolkit Delegates creation and

More information

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

(9)1.3notes.notebook. September 28, 2012

(9)1.3notes.notebook. September 28, 2012 1 Surface Area of Square/Rectangular Prism 8cm Front/Back = 10cm x 8cm = 80cm 2 each 10cm 6cm Top/Bottom = 10cm x 6cm = 60cm 2 each Side/Side = 8cm x 6cm = 48cm 2 each Total Surface Area = 2(80cm 2 ) +

More information

CS260. UI Toolkits. Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010

CS260. UI Toolkits. Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010 CS260 UI Toolkits Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010 In the beginning cryptonomicon.com/beginning.html The Xerox Alto (1973) Event-Driven UIs Old

More information

CPS122 Lecture: Design Patterns Last revised March 7, 2017

CPS122 Lecture: Design Patterns Last revised March 7, 2017 CPS122 Lecture: Design Patterns Last revised March 7, 2017 Objectives 1. To introduce and illustrate the idea of design patterns 2. To introduce some key design patterns students have used or will use:

More information

Model-View-Controller

Model-View-Controller Model-View-Controller rationale implementation benefit Model-View-Controller 1 How can we design a power point application? Model-View-Controller 2 Possible Design: Data and UI in Same Object What if we

More information

Introduction to the JAVA UI classes Advanced HCI IAT351

Introduction to the JAVA UI classes Advanced HCI IAT351 Introduction to the JAVA UI classes Advanced HCI IAT351 Week 3 Lecture 1 17.09.2012 Lyn Bartram lyn@sfu.ca About JFC and Swing JFC Java TM Foundation Classes Encompass a group of features for constructing

More information

Java How to Program, 9/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 9/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 9/e Copyright 1992-2012 by Pearson Education, Inc. All Rights Reserved. Overview capabilities for drawing two-dimensional shapes, controlling colors and controlling fonts. One of

More information

Unit 1: Preliminaries Part 1: Course Introduction, Abstraction, and ADT s

Unit 1: Preliminaries Part 1: Course Introduction, Abstraction, and ADT s Unit 1: Preliminaries Part 1: Course Introduction, Abstraction, and ADT s Engineering 4892: Data Structures Faculty of Engineering & Applied Science Memorial University of Newfoundland April 23, 2010 ENGI

More information

Part 3: Graphical User Interface (GUI) & Java Applets

Part 3: Graphical User Interface (GUI) & Java Applets 1,QWURGXFWLRQWR-DYD3URJUDPPLQJ (( Part 3: Graphical User Interface (GUI) & Java Applets EE905-GUI 7RSLFV Creating a Window Panels Event Handling Swing GUI Components ƒ Layout Management ƒ Text Field ƒ

More information

L.C.Smith. Privacy-Preserving Offloading of Mobile App to the Public Cloud

L.C.Smith. Privacy-Preserving Offloading of Mobile App to the Public Cloud Privacy-Preserving Offloading of Mobile App to the Public Cloud Yue Duan, Mu Zhang, Heng Yin and Yuzhe Tang Department of EECS Syracuse University L.C.Smith College of Engineering 1 and Computer Science

More information

SELF-STUDY. Glossary

SELF-STUDY. Glossary SELF-STUDY 231 Glossary HTML (Hyper Text Markup Language - the language used to code web pages) tags used to embed an applet. abstract A class or method that is incompletely defined,

More information

Computer Networks IT321

Computer Networks IT321 Computer Networks IT321 CS Program 3 rd Year (2 nd Semester) Page 1 Assiut University Faculty of Computers & Information Computer Science Department Quality Assurance Unit Computer Networks Course Specifications

More information

Static Detection of Brittle Parameter Typing

Static Detection of Brittle Parameter Typing Static Detection of Brittle Parameter Typing Michael Pradel, Severin Heiniger, and Thomas R. Gross Department of Computer Science ETH Zurich 1 Motivation void m(a a) {... } Object A.. B C D E F 2 Motivation

More information

MagBoard: Magnetic-based Ubiquitous Homomorphic Off-the-shelf Keyboard

MagBoard: Magnetic-based Ubiquitous Homomorphic Off-the-shelf Keyboard MagBoard: Magnetic-based Ubiquitous Homomorphic Off-the-shelf Keyboard Heba Abdelnasser, Moustafa Youssef, and Khaled A. Harras* Egypt-Japan Univ. of Sc. and Tech., Alexandria Univ., Carnegie Mellon Univ.*

More information

Design Patterns. An introduction

Design Patterns. An introduction Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at

More information

Programmierpraktikum

Programmierpraktikum Programmierpraktikum Claudius Gros, SS2012 Institut für theoretische Physik Goethe-University Frankfurt a.m. 1 of 25 17/01/13 11:45 Swing Graphical User Interface (GUI) 2 of 25 17/01/13 11:45 Graphical

More information

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017 Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began

More information

Graphics and Painting

Graphics and Painting Graphics and Painting Lecture 17 CGS 3416 Fall 2015 November 30, 2015 paint() methods Lightweight Swing components that extend class JComponent have a method called paintcomponent, with this prototype:

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 33 April 16, 2014 Swing I: Drawing and Event Handling Set set = new TreeSet (); Map map = new TreeMap

More information

David Qiao JIDE So-ware, Inc. THE MERGING POINT OF ANDROID AND SWING

David Qiao JIDE So-ware, Inc. THE MERGING POINT OF ANDROID AND SWING David Qiao JIDE So-ware, Inc. THE MERGING POINT OF ANDROID AND SWING Myself 10- year old Swing developer Author of most components offered by JIDE So-ware 1- year old Android developer Author of several

More information

Programming graphics

Programming graphics Programming graphics Need a window javax.swing.jframe Several essential steps to use (necessary plumbing ): Set the size width and height in pixels Set a title (optional), and a close operation Make it

More information

Chapter 14 JavaFX Basics. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved.

Chapter 14 JavaFX Basics. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. Chapter 14 JavaFX Basics 1 Motivations JavaFX is a new framework for developing Java GUI programs. The JavaFX API is an excellent example of how the object-oriented principle is applied. This chapter serves

More information

Distributed File Systems Issues. NFS (Network File System) AFS: Namespace. The Andrew File System (AFS) Operating Systems 11/19/2012 CSC 256/456 1

Distributed File Systems Issues. NFS (Network File System) AFS: Namespace. The Andrew File System (AFS) Operating Systems 11/19/2012 CSC 256/456 1 Distributed File Systems Issues NFS (Network File System) Naming and transparency (location transparency versus location independence) Host:local-name Attach remote directories (mount) Single global name

More information

An Approach for Establishing and Managing Strike and Battle Group Compositions Across Disconnected, Intermittent and Limited (DIL) Naval Networks

An Approach for Establishing and Managing Strike and Battle Group Compositions Across Disconnected, Intermittent and Limited (DIL) Naval Networks An Approach for Establishing and Managing Strike and Battle Group Compositions Across Disconnected, Intermittent and Limited (DIL) Naval Networks Matthew Fisher Tom Burns Nik Keapproth March 10th, 2010

More information

On Application of Structural Decomposition for Process Model Abstraction. Artem Polyvyanyy Sergey Smirnov Mathias Weske

On Application of Structural Decomposition for Process Model Abstraction. Artem Polyvyanyy Sergey Smirnov Mathias Weske On Application of Structural Decomposition for Process Model Abstraction Artem Polyvyanyy Sergey Smirnov Mathias Weske BPSC 2009 24 March 2009 Motivation 2 Research project with AOK Brandenburg Goal: detailed

More information

John Zukowski's Definitive Guide to Swing for Java 2

John Zukowski's Definitive Guide to Swing for Java 2 John Zukowski's Definitive Guide to Swing for Java 2 JOHN ZUKOWSKI APress Media, LLC John Zukowski's Definitive Guide to Swing for Java 2 Copyright ~1999 by John Zukowski Originally published by Apress

More information

Demo Proposal. 1 General Information

Demo Proposal. 1 General Information Demo Proposal 1 General Information Demostration title: FLiP Product Line Derivation Tool Type of demonstration : Forum Contact person: Paulo Borba, phmb@cin.ufpe.br, Informatics Center UFPE, Universidade

More information

Outline. Design Patterns: Part 1. What is a Design Pattern? ENGI 5895: Software Design

Outline. Design Patterns: Part 1. What is a Design Pattern? ENGI 5895: Software Design Outline Design Patterns: Part 1 ENGI 5895: Software Design Andrew Vardy with code samples from Dr. Rodrigue Byrne and [Martin(2003)] Faculty of Engineering & Applied Science Memorial University of Newfoundland

More information

Designmönster (design pa#erns)

Designmönster (design pa#erns) OO: No silver bullet DH2640 Grafik och Interaktionsprogrammering VT 2010 Pa#erns in GUI programming Cristian Bogdan cristi@kth.se Fred Brooks (1986) It is difficult to get a OO design (classes and their

More information

Swing UI. Powered by Pentalog. by Vlad Costel Ungureanu for Learn Stuff

Swing UI. Powered by Pentalog. by Vlad Costel Ungureanu for Learn Stuff Swing UI by Vlad Costel Ungureanu for Learn Stuff User Interface Command Line Graphical User Interface (GUI) Tactile User Interface (TUI) Multimedia (voice) Intelligent (gesture recognition) 2 Making the

More information

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright GUI Basics Object Orientated Programming in Java Benjamin Kenwright Outline Essential Graphical User Interface (GUI) Concepts Libraries, Implementation, Mechanics,.. Abstract Windowing Toolkit (AWT) Java

More information

The Abstract Windowing Toolkit. Java Foundation Classes. Swing. In April 1997, JavaSoft announced the Java Foundation Classes (JFC).

The Abstract Windowing Toolkit. Java Foundation Classes. Swing. In April 1997, JavaSoft announced the Java Foundation Classes (JFC). The Abstract Windowing Toolkit Since Java was first released, its user interface facilities have been a significant weakness The Abstract Windowing Toolkit (AWT) was part of the JDK form the beginning,

More information

Computer Science 210: Data Structures. Intro to Java Graphics

Computer Science 210: Data Structures. Intro to Java Graphics Computer Science 210: Data Structures Intro to Java Graphics Summary Today GUIs in Java using Swing in-class: a Scribbler program READING: browse Java online Docs, Swing tutorials GUIs in Java Java comes

More information

Introduction p. 1 JFC Architecture p. 5 Introduction to JFC p. 7 The JFC 1.2 Extension p. 8 Swing p. 9 Drag and Drop p. 16 Accessibility p.

Introduction p. 1 JFC Architecture p. 5 Introduction to JFC p. 7 The JFC 1.2 Extension p. 8 Swing p. 9 Drag and Drop p. 16 Accessibility p. Introduction p. 1 JFC Architecture p. 5 Introduction to JFC p. 7 The JFC 1.2 Extension p. 8 Swing p. 9 Drag and Drop p. 16 Accessibility p. 17 MVC Architecture p. 19 The MVC Architecture p. 20 Combined

More information

Plattformübergreifende Softwareentwicklung für heterogene Multicore-Systeme

Plattformübergreifende Softwareentwicklung für heterogene Multicore-Systeme Plattformübergreifende Softwareentwicklung für heterogene Multicore-Systeme Dr.-Ing. Timo Stripf 1 Managing Director Technolgy Outline Multicore Motivation Automatic Parallelization Interactive Parallelization

More information