The Design and Implementation of Multimedia Software
|
|
|
- Emery Hart
- 9 years ago
- Views:
Transcription
1 Chapter 7 A Static Visual Content System The Design and Implementation of Multimedia Software David Bernstein Jones and Bartlett Publishers David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 1 / 56
2 Introduction About this Chapter Consider a comic book character that has one BufferedImage as its head and another as its body: One could create two sampled.content objects and put them in one Visualization. But the character could not be treated as a coherent whole. Consider an illustration of a house using described content in which the door and roof must be different colors: One could create a described.content object for each part of the house and add them all to a single Visualization. Butthehousecouldnotbetreatedasacoherentwhole. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 2 / 56
3 Introduction Requirements F7.1 Support visual content that has multiple component parts. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 3 / 56
4 Design Alternatives Ignoring Content Types What s Next We need to consider some high-level design alternatives. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 4 / 56
5 Design Alternatives Ignoring Content Types A Top-Down Approach 1. Consider design alternatives at a high level of abstraction. Ignore the differences between statik.sampled.content and statik.described.content objects and consider only statik.content objects. 2. Add the details needed to support the differences between statik.sampled.content and statik.described.content. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 5 / 56
6 Design Alternatives Ignoring Content Types Alternative 1 David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 6 / 56
7 Design Alternatives Ignoring Content Types Alternative 1 - Shortcomings What are the shortcomings? David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 7 / 56
8 Design Alternatives Ignoring Content Types Alternative 1 - Shortcomings Both the Visualization and VisualizationView classes must now distinguish between Content objects and AggregateContent objects making them more complicated, more repetitive, and less cohesive. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 7 / 56
9 Design Alternatives Ignoring Content Types Alternative 2 Use the Composite Pattern David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 8 / 56
10 Design Alternatives Ignoring Content Types Alternative 2 - Advantages Allows both the Visualization and VisualizationView classes to treat SimpleContent objects and CompositeContent objects in exactly the same way. Enables the creation of content that is very complicated. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 9 / 56
11 Design Alternatives Incorporating Content Types What s Next We need to consider some lower-level design alternatives. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 10 / 56
12 Design Alternatives Incorporating Content Types Alternative 2.1 Approach: Make three copies of the design, one for statik.sampled.content, one for statik.described.content, and one for either/both. Shortcomings: What are the shortcomings? David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 11 / 56
13 Design Alternatives Incorporating Content Types Alternative 2.1 Approach: Make three copies of the design, one for statik.sampled.content, one for statik.described.content, and one for either/both. Shortcomings: The statik.sampled.compositecontent, statik.described.compositecontent, and statik.compositecontent classes all must have add(), remove(), render(), andgetbounds2d() methods that contain (virtually) identical code. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 11 / 56
14 Design Alternatives Incorporating Content Types Alternative 2.2 What are the shortcomings? David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 12 / 56
15 Design Alternatives Incorporating Content Types Alternative 2.2 It doesn t allow operations that are either specific to statik.sampled.content or statik.described.content objects to be applied to statik.compositecontent objects. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 12 / 56
16 Design Alternatives Incorporating Content Types Alternative 2.3 David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 13 / 56
17 Design Alternatives Incorporating Content Types Alternative Advantages and Disadvantages Advantage: Allows for operations that are specific to statik.sampled.content and statik.described.content Eliminates code duplication by moving the common code to the abstract parent. Disadvantage: Since the abstract parent manages the collection, the collection must contain statik.transformablecontent objects, rather than the more specific statik.sampled.content and statik.described.content objects. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 14 / 56
18 Design Alternatives Incorporating Content Types Alternative 2.4 David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 15 / 56
19 Design Alternatives Incorporating Content Types The visual.statik Package AbstractAggregateContent - Structure package visual.statik; import java.awt.*; import java.awt.geom.*; import java.util.*; public abstract class AbstractAggregateContent<C extends TransformableContent> extends AbstractTransformableContent // A LinkedList is used to order the components. // Since we don t expect many components to be removed // this doesn t raise efficiency concerns. // // Alternatively, we could have a z-order. protected LinkedList<C> components; public AbstractAggregateContent() super(); components = new LinkedList<C>(); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 16 / 56
20 Design Alternatives Incorporating Content Types The visual.statik Package AbstractAggregateContent - Content Management public void add(c component) components.add(component); public Iterator<C> iterator() return components.iterator(); public void remove(c component) components.remove(component); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 17 / 56
21 Design Alternatives Incorporating Content Types The visual.statik Package AbstractAggregateContent - Rendering public void render(graphics g) Iterator<C> i; C component; i = components.iterator(); while (i.hasnext()) component = i.next(); component.setlocation(x, y); component.setrotation(angle, xrotation, yrotation); component.setscale(xscale, yscale); component.render(g); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 18 / 56
22 Design Alternatives Incorporating Content Types The visual.statik Package AbstractAggregateContent - Bounds public Rectangle2D getbounds2d(boolean oftransformed) double maxx, maxy, minx, miny, rx, ry; Iterator<C> i; Rectangle2D bounds; TransformableContent component; maxx = Double.NEGATIVE_INFINITY; maxy = Double.NEGATIVE_INFINITY; minx = Double.POSITIVE_INFINITY; miny = Double.POSITIVE_INFINITY; i = components.iterator(); while (i.hasnext()) component = i.next(); bounds = component.getbounds2d(oftransformed); if (bounds!= null) rx = bounds.getx(); ry = bounds.gety(); if (rx < minx) minx = rx; if (ry < miny) miny = ry; rx = bounds.getx() + bounds.getwidth(); ry = bounds.gety() + bounds.getheight(); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 19 / 56
23 Design Alternatives Incorporating Content Types The visual.statik Package AbstractAggregateContent - Bounds (cont.) if (rx > maxx) maxx = rx; if (ry > maxy) maxy = ry; // Note: We could, instead, use an object pool return new Rectangle2D.Double(minX, miny, maxx-minx, maxy-miny); For simplicity, this implementation does not store bounds, it calculates them when needed using the getbounds2d() method in the TransformableContent objects. Alternatively, this class could calculate the bounds whenever they change. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 20 / 56
24 Design Alternatives Incorporating Content Types The visual.statik Package CompositeContent package visual.statik; public class CompositeContent extends AbstractAggregateContent<TransformableContent> implements TransformableContent public CompositeContent() super(); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 21 / 56
25 Design Alternatives Incorporating Content Types The visual.statik.sampled Package CompositeContent - Structure package visual.statik.sampled; import java.awt.composite; import java.awt.image.bufferedimageop; import java.util.iterator; import visual.statik.abstractaggregatecontent; public class CompositeContent extends AbstractAggregateContent<TransformableContent> implements TransformableContent public CompositeContent() super(); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 22 / 56
26 Design Alternatives Incorporating Content Types The visual.statik.sampled Package CompositeContent - setbufferedimageop() public void setbufferedimageop(bufferedimageop op) Iterator<TransformableContent> i; i = iterator(); while (i.hasnext()) i.next().setbufferedimageop(op); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 23 / 56
27 Design Alternatives Incorporating Content Types The visual.statik.sampled Package CompositeContent - setcomposite() public void setcomposite(composite c) Iterator<TransformableContent> i; i = iterator(); while (i.hasnext()) i.next().setcomposite(c); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 24 / 56
28 Design Alternatives Incorporating Content Types The visual.statik.described Package CompositeContent - Structure package visual.statik.described; import java.awt.*; import java.util.iterator; import visual.statik.abstractaggregatecontent; public class CompositeContent extends AbstractAggregateContent<TransformableContent> implements TransformableContent public CompositeContent() super(); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 25 / 56
29 Design Alternatives Incorporating Content Types The visual.statik.described Package CompositeContent - setcolor() public void setcolor(color color) Iterator<TransformableContent> i; i = iterator(); while (i.hasnext()) i.next().setcolor(color); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 26 / 56
30 Design Alternatives Incorporating Content Types The visual.statik.described Package CompositeContent - setpaint() public void setpaint(paint paint) Iterator<TransformableContent> i; i = iterator(); while (i.hasnext()) i.next().setpaint(paint); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 27 / 56
31 Design Alternatives Incorporating Content Types The visual.statik.described Package CompositeContent - setstroke() public void setstroke(stroke stroke) Iterator<TransformableContent> i; i = iterator(); while (i.hasnext()) i.next().setstroke(stroke); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 28 / 56
32 Some Examples What s Next We need to consider some examples. David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 29 / 56
33 Some Examples An Example of described.compositecontent Introducing Buzzy David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 30 / 56
34 Some Examples An Example of described.compositecontent Introducing Buzzy Demonstration In examples/chapter: Buzzy.html java -cp Buzzy.jar BuzzyApplication David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 31 / 56
35 Some Examples An Example of described.compositecontent Buzzy - Structure import java.awt.*; import java.awt.geom.*; import javax.swing.*; import visual.statik.described.*; public class BoringBuzzy extends CompositeContent David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 32 / 56
36 Some Examples An Example of described.compositecontent Buzzy - Constructor public BoringBuzzy() super(); Arc2D.Float BasicStroke Color CompositeContent Content Path2D.Float QuadCurve2D.Float helmetshape, visorshape; stroke; black, gold, gray, purple; head; body, hair, helmet, visor; bodyshape; hairshape; black = Color.BLACK; gold = new Color(0xc2,0xa1,0x4d); gray = new Color(0xaa,0xaa,0xaa); purple = new Color(0x45,0x00,0x84); stroke = new BasicStroke(); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 33 / 56
37 Some Examples An Example of described.compositecontent Buzzy - Body bodyshape = new Path2D.Float(); bodyshape.moveto( 20, 50); bodyshape.lineto( 20, 70); bodyshape.lineto( 20, 90); bodyshape.lineto( 10, 90); bodyshape.lineto( 10,100); bodyshape.lineto( 80,100); bodyshape.lineto( 80, 90); bodyshape.lineto( 40, 90); bodyshape.lineto( 40, 70); bodyshape.lineto( 40, 50); bodyshape.closepath(); body = new Content(bodyShape, black, purple, stroke); add(body); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 34 / 56
38 Some Examples An Example of described.compositecontent Buzzy - Head head = new CompositeContent(); add(head); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 35 / 56
39 Some Examples An Example of described.compositecontent Buzzy - Hair (?) hairshape = new QuadCurve2D.Float(10,2,40,10,30,25); hair = new Content(hairShape, purple, null, stroke); head.add(hair); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 36 / 56
40 Some Examples An Example of described.compositecontent Buzzy - Helmet helmetshape = new Arc2D.Float(2,20,70,40,2,360,Arc2D.OPEN); helmet=new Content(helmetShape, black, gold, stroke); head.add(helmet); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 37 / 56
41 Some Examples An Example of described.compositecontent Buzzy - Visor visorshape = new Arc2D.Float(40,25,35,30,315,90,Arc2D.PIE); visor=new Content(visorShape, black, gray, stroke); head.add(visor); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 38 / 56
42 Some Examples An Example of Mixed CompositeContent Buzzy with a Fancy Helmet David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 39 / 56
43 Some Examples An Example of Mixed CompositeContent Buzzy with a Fancy Helmet - Structure import java.awt.*; import java.awt.geom.*; import javax.swing.*; import io.*; public class FancyBuzzy extends visual.statik.compositecontent David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 40 / 56
44 Some Examples An Example of Mixed CompositeContent Buzzy with a Fancy Helmet - Declarations ResourceFinder visual.statik.compositecontent visual.statik.described.content visual.statik.sampled.content visual.statik.sampled.contentfactory finder; head; body, hair, helmet, visor; screw; factory; David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 41 / 56
45 Some Examples An Example of Mixed CompositeContent Buzzy with a Fancy Helmet - Logo finder = ResourceFinder.createInstance(this); factory = new visual.statik.sampled.contentfactory(finder); screw = factory.createcontent("screw.png", 4); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 42 / 56
46 Some Examples An Example of Mixed CompositeContent Buzzy with a Fancy Helmet - Head head = new visual.statik.compositecontent(); head.add(hair); head.add(helmet); head.add(screw); head.add(visor); add(head); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 43 / 56
47 Some Examples An Example of a Visualization Buzzy in the Woods David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 44 / 56
48 Some Examples An Example of a Visualization Buzzy in the Woods Demonstration In examples/chapter: Visualization.html java -cp Visualization.jar VisualizationApplication David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 45 / 56
49 Some Examples An Example of a Visualization Buzzy in the Woods - The Woods finder = ResourceFinder.createInstance(this); factory = new ContentFactory(finder); opfactory = BufferedImageOpFactory.createFactory(); woods = factory.createcontent("woods.png", 3); woods.setlocation(0,0); woods.setbufferedimageop(opfactory.createblurop(3)); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 46 / 56
50 Some Examples An Example of a Visualization Buzzy in the Woods - Buzzy buzzy = new FancyBuzzy(); buzzy.setlocation(200, 318); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 47 / 56
51 Some Examples An Example of a Visualization Buzzy in the Woods - The Visualization visualization = new Visualization(); view = visualization.getview(); view.setbounds(0,0,471,418); view.setsize(471,418); visualization.add(woods); visualization.add(buzzy); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 48 / 56
52 Some Examples An Example of a Visualization Buzzy in the Woods - The Content Pane // The content pane contentpane = (JPanel)rootPaneContainer.getContentPane(); contentpane.add(view); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 49 / 56
53 Some Examples An Example of Multiple Visualizations Picture-in-a-Picture David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 50 / 56
54 Some Examples An Example of Multiple Visualizations Picture-in-a-Picture Demonstration In examples/chapter: StaticPIP.html java -cp StaticPIP.jar StaticPIPApplication David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 51 / 56
55 Some Examples An Example of Multiple Visualizations Picture-in-a-Picture - Structure import java.awt.*; import java.awt.geom.*; import javax.swing.*; import app.*; import io.*; import visual.*; import visual.statik.sampled.*; public class StaticPIPApp extends AbstractMultimediaApp public void init() BufferedImageOpFactory opfactory; Content woods, house; ContentFactory factory; FancyBuzzy buzzy; JPanel contentpane; ResourceFinder finder; Visualization model1, model2; VisualizationRenderer renderer1, renderer2; VisualizationView view1, view2; finder = ResourceFinder.createInstance(this); factory = new ContentFactory(finder); opfactory = BufferedImageOpFactory.createFactory(); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 52 / 56
56 Some Examples An Example of Multiple Visualizations Picture-in-a-Picture - Structure (cont.) David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 53 / 56
57 Some Examples An Example of Multiple Visualizations Picture-in-a-Picture - One Visualization woods = factory.createcontent("woods.png", 3); woods.setlocation(0,0); woods.setbufferedimageop(opfactory.createblurop(3)); buzzy = new FancyBuzzy(); buzzy.setlocation(200, 318); model1 = new Visualization(); model1.add(woods); model1.add(buzzy); view1 = model1.getview(); renderer1 = view1.getrenderer(); view1.setrenderer(new ScaledVisualizationRenderer(renderer1, 471.0, 418.0)); view1.setbounds(0,0,471,418); view1.setsize(471,418); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 54 / 56
58 Some Examples An Example of Multiple Visualizations Picture-in-a-Picture - The Other Visualization house = factory.createcontent("house.png", 3); house.setlocation(0,0); model2 = new Visualization(); model2.add(house); view2 = model2.getview(); renderer2 = view2.getrenderer(); view2.setrenderer(new ScaledVisualizationRenderer(renderer2, 525.0, 375.0)); view2.setbounds(50,50,160,120); view2.setsize(160,120); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 55 / 56
59 Some Examples An Example of Multiple Visualizations Picture-in-a-Picture - The Content Pane // The content pane contentpane = (JPanel)rootPaneContainer.getContentPane(); contentpane.add(view2); contentpane.add(view1); David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 56 / 56
The Design and Implementation of Multimedia Software
Chapter 3 Programs The Design and Implementation of Multimedia Software David Bernstein Jones and Bartlett Publishers www.jbpub.com David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett 1
A Little Set Theory (Never Hurt Anybody)
A Little Set Theory (Never Hurt Anybody) Matthew Saltzman Department of Mathematical Sciences Clemson University Draft: August 21, 2013 1 Introduction The fundamental ideas of set theory and the algebra
Construction of classes with classes
(November 13, 2014 Class hierarchies 1 ) Construction of classes with classes Classes can be built on existing classes through attributes of object types. Example: I A class PairOfDice can be constructed
API for java.util.iterator. ! hasnext() Are there more items in the list? ! next() Return the next item in the list.
Sequences and Urns 2.7 Lists and Iterators Sequence. Ordered collection of items. Key operations. Insert an item, iterate over the items. Design challenge. Support iteration by client, without revealing
Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import
Classes and Objects 2 4 pm Tuesday 7/1/2008 @JD2211 1 Agenda The Background of the Object-Oriented Approach Class Object Package and import 2 Quiz Who was the oldest profession in the world? 1. Physician
The Design and Implementation of Multimedia Software
Chapter 10 Auditory Content The Design and Implementation of Multimedia Software David Bernstein Jones and Bartlett Publishers www.jbpub.com David Bernstein (jbpub.com) Multimedia Software Jones and Bartlett
Interactive Programs and Graphics in Java
Interactive Programs and Graphics in Java Alark Joshi Slide credits: Sami Rollins Announcements Lab 1 is due today Questions/concerns? SVN - Subversion Versioning and revision control system 1. allows
Homework/Program #5 Solutions
Homework/Program #5 Solutions Problem #1 (20 points) Using the standard Java Scanner class. Look at http://natch3z.blogspot.com/2008/11/read-text-file-using-javautilscanner.html as an exampleof using the
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
How Scala Improved Our Java
How Scala Improved Our Java Sam Reid PhET Interactive Simulations University of Colorado http://spot.colorado.edu/~reids/ PhET Interactive Simulations Provides free, open source educational science simulations
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
INTRODUCTION TO COMPUTER PROGRAMMING. Richard Pierse. Class 7: Object-Oriented Programming. Introduction
INTRODUCTION TO COMPUTER PROGRAMMING Richard Pierse Class 7: Object-Oriented Programming Introduction One of the key issues in programming is the reusability of code. Suppose that you have written a program
Chapter 2 Introduction to Java programming
Chapter 2 Introduction to Java programming 1 Keywords boolean if interface class true char else package volatile false byte final switch while throws float private case return native void protected break
ios App Development for Everyone
ios App Development for Everyone Kevin McNeish Table of Contents Chapter 2 Objective C (Part 6) Referencing Classes Now you re ready to use the Calculator class in the App. Up to this point, each time
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
The Basic Java Applet and JApplet
I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s The Basic Java Applet and JApplet Rob Dempster [email protected] School of Computer Science University of KwaZulu-Natal Pietermaritzburg Campus I2PUJ4 - Chapter
Introduction to Java Applets (Deitel chapter 3)
Introduction to Java Applets (Deitel chapter 3) 1 2 Plan Introduction Sample Applets from the Java 2 Software Development Kit Simple Java Applet: Drawing a String Drawing Strings and Lines Adding Floating-Point
Chapter 2: Algorithm Discovery and Design. Invitation to Computer Science, C++ Version, Third Edition
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition Objectives In this chapter, you will learn about: Representing algorithms Examples of algorithmic problem
Week 2 Practical Objects and Turtles
Week 2 Practical Objects and Turtles Aims and Objectives Your aim in this practical is: to practise the creation and use of objects in Java By the end of this practical you should be able to: create objects
The Interface Concept
Multiple inheritance Interfaces Four often used Java interfaces Iterator Cloneable Serializable Comparable The Interface Concept OOP: The Interface Concept 1 Multiple Inheritance, Example Person name()
CS170 Lab 11 Abstract Data Types & Objects
CS170 Lab 11 Abstract Data Types & Objects Introduction: Abstract Data Type (ADT) An abstract data type is commonly known as a class of objects An abstract data type in a program is used to represent (the
Programming with Java GUI components
Programming with Java GUI components Java includes libraries to provide multi-platform support for Graphic User Interface objects. The multi-platform aspect of this is that you can write a program on a
Unit 6. Loop statements
Unit 6 Loop statements Summary Repetition of statements The while statement Input loop Loop schemes The for statement The do statement Nested loops Flow control statements 6.1 Statements in Java Till now
Arrays. Atul Prakash Readings: Chapter 10, Downey Sun s Java tutorial on Arrays: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.
Arrays Atul Prakash Readings: Chapter 10, Downey Sun s Java tutorial on Arrays: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html 1 Grid in Assignment 2 How do you represent the state
How To Write A Program For The Web In Java (Java)
21 Applets and Web Programming As noted in Chapter 2, although Java is a general purpose programming language that can be used to create almost any type of computer program, much of the excitement surrounding
How To Program In Java (Ipt) With A Bean And An Animated Object In A Powerpoint (For A Powerbook)
Graphic Interface Programming II Applets and Beans and animation in Java IT Uppsala universitet Applets Small programs embedded in web pages
Java Programming Fundamentals
Lecture 1 Part I Java Programming Fundamentals Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Introduction to Java We start by making a few
120, 200 x. r1 = 25. virtua void translate (int dx, dy) = 0; virtual void dessiner(graphics &g) = 0;
Adresse : [email protected] 1. COO par lʼexemple 100,50 a, 30 120, 200 x r1 = 25 Graphics Dessin translater(dx, dy) dessiner(g) drawline(x,y,h,l) drawellipse fillrect setcolor setbgcolor() *
WRITING DATA TO A BINARY FILE
WRITING DATA TO A BINARY FILE TEXT FILES VS. BINARY FILES Up to now, we have looked at how to write and read characters to and from a text file. Text files are files that contain sequences of characters.
History OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
LAB4 Making Classes and Objects
LAB4 Making Classes and Objects Objective The main objective of this lab is class creation, how its constructer creation, object creation and instantiation of objects. We will use the definition pane to
CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Vim, Emacs, and JUnit Testing. Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor
Vim, Emacs, and JUnit Testing Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor Overview Vim and Emacs are the two code editors available within the Dijkstra environment. While both
Association - Multiplicity. UML and Classes, Objects and Relationships [ 2] Notes. Notes. Association - Self. Association - Self
- Multiplicity UML and Classes, Objects and Relationships [ 2] Defining Domain Models Using Class Diagrams A can take many Courses and many s can be enrolled in one Course. Alice: takes * * 254: Course
JIDE Action Framework Developer Guide
JIDE Action Framework Developer Guide Contents PURPOSE OF THIS DOCUMENT... 1 WHAT IS JIDE ACTION FRAMEWORK... 1 PACKAGES... 3 MIGRATING FROM EXISTING APPLICATIONS... 3 DOCKABLEBARMANAGER... 9 DOCKABLE
MiniDraw Introducing a framework... and a few patterns
MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation
ios Dev Crib Sheet In the Shadow of C
ios Dev Crib Sheet As you dive into the deep end of the ios development pool, the first thing to remember is that the mother ship holds the authoritative documentation for this endeavor http://developer.apple.com/ios
Lesson: All About Sockets
All About Sockets http://java.sun.com/docs/books/tutorial/networking/sockets/index.html Page 1 sur 1 The Java TM Tutorial Start of Tutorial > Start of Trail Trail: Custom Networking Lesson: All About Sockets
The Google Web Toolkit (GWT): Declarative Layout with UiBinder Basics
2013 Marty Hall & Yaakov Chaikin The Google Web Toolkit (GWT): Declarative Layout with UiBinder Basics (GWT 2.5 Version) Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/gwt.html
Week 1: Review of Java Programming Basics
Week 1: Review of Java Programming Basics Sources: Chapter 2 in Supplementary Book (Murach s Java Programming) Appendix A in Textbook (Carrano) Slide 1 Outline Objectives A simple Java Program Data-types
Introduction to Programming System Design. CSCI 455x (4 Units)
Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,
A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:
Binary Search Trees 1 The general binary tree shown in the previous chapter is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will)
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,
Karsten Lentzsch JGoodies SWING WITH STYLE
Karsten Lentzsch JGoodies SWING WITH STYLE JGoodies: Karsten Lentzsch Open source Swing libraries Example applications Consultant for Java desktop Design assistance Training for visual design and implementation
CMSC 132: Object-Oriented Programming II. Design Patterns I. Department of Computer Science University of Maryland, College Park
CMSC 132: Object-Oriented Programming II Design Patterns I Department of Computer Science University of Maryland, College Park Design Patterns Descriptions of reusable solutions to common software design
Crop and Frame Your Photos
Crop and Frame Your Photos Paint Shop Pro s crop tool gives you total control over your photo compositions. Cropping allows you to turn busy portraits into professional prints. And when you have a nicely
Lab 9. Spam, Spam, Spam. Handout 11 CSCI 134: Spring, 2015. To gain experience with Strings. Objective
Lab 9 Handout 11 CSCI 134: Spring, 2015 Spam, Spam, Spam Objective To gain experience with Strings. Before the mid-90s, Spam was a canned meat product. These days, the term spam means just one thing unwanted
Chapter 5 Functions. Introducing Functions
Chapter 5 Functions 1 Introducing Functions A function is a collection of statements that are grouped together to perform an operation Define a function Invoke a funciton return value type method name
Chapter 1 Java Program Design and Development
presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli Ralph Walde Trinity College Hartford, CT published by Prentice Hall Java, Java, Java Object Oriented
Lab 1A. Create a simple Java application using JBuilder. Part 1: make the simplest Java application Hello World 1. Start Jbuilder. 2.
Lab 1A. Create a simple Java application using JBuilder In this lab exercise, we ll learn how to use a Java integrated development environment (IDE), Borland JBuilder 2005, to develop a simple Java application
J a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
Chulalongkorn University International School of Engineering Department of Computer Engineering 2140105 Computer Programming Lab.
Chulalongkorn University Name International School of Engineering Student ID Department of Computer Engineering Station No. 2140105 Computer Programming Lab. Date Lab 2 Using Java API documents, command
TECHNOLOGY Computer Programming II Grade: 9-12 Standard 2: Technology and Society Interaction
Standard 2: Technology and Society Interaction Technology and Ethics Analyze legal technology issues and formulate solutions and strategies that foster responsible technology usage. 1. Practice responsible
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,
The Smalltalk Programming Language. Beatrice Åkerblom [email protected]
The Smalltalk Programming Language Beatrice Åkerblom [email protected] 'The best way to predict the future is to invent it' - Alan Kay. History of Smalltalk Influenced by Lisp and Simula Object-oriented
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
ATHLETIC LOGO GRAPHIC STANDARDS GUIDE VOL.1
ATHLETIC LOGO GRAPHIC STANDARDS GUIDE VOL.1 OFFICIAL LOGO COLORS Primary Colors CU Athletic Maroon Pantone 209 CU Gray Pantone 430 Secondary Colors Black White 1 CONCORD UNIVERSITY MOUNTIAN LIONS LOGO
User Recognition and Preference of App Icon Stylization Design on the Smartphone
User Recognition and Preference of App Icon Stylization Design on the Smartphone Chun-Ching Chen (&) Department of Interaction Design, National Taipei University of Technology, Taipei, Taiwan [email protected]
DC60 JAVA AND WEB PROGRAMMING JUNE 2014. b. Explain the meaning of the following statement public static void main (string args [ ] )
Q.2 a. How does Java differ from C and C++? Page 16 of Text Book 1 b. Explain the meaning of the following statement public static void main (string args [ ] ) Page 26 of Text Book 1 Q.3 a. What are the
Tradeshow Overview. The Parker identity elements. Color palette. Typography. Graphics and imagery. Product displays. Apparel TRADESHOW BOOTH(S)
Tradeshow Overview Tradeshows and exhibitions are marketing mediums that readily engage all the senses in ways impossible to achieve with print ads or video. This is a unique opportunity to help customers
Basic Programming and PC Skills: Basic Programming and PC Skills:
Texas University Interscholastic League Contest Event: Computer Science The contest challenges high school students to gain an understanding of the significance of computation as well as the details of
1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms
1 What are ata Structures? ata Structures and lgorithms ata structures are software artifacts that allow data to be stored, organized and accessed Topic 1 They are more high-level than computer memory
CS1002: COMPUTER SCIENCE OO MODELLING & DESIGN: WEEK 5
This Week CS1002: COMPUTER SCIENCE OO MODELLING & DESIGN: WEEK 5 School of Computer Science University of St Andrews Graham Kirby Alan Dearle More on Java classes Constructors Modifiers cdn.videogum.com/img/thumbnails/photos/commenter.jpg
B.A. ANIMATION & GRAPHIC DESIGN
1 P a g e (CBCSS) Model Questions & Question Bank 2 P a g e Paper 4-1 SCRIPTING & STORYBOARDING FOR ANIMATION (Practical Examination) Question Bank 1 The examination is the assessment of a scripting and
Class 32: The Java Collections Framework
Introduction to Computation and Problem Solving Class 32: The Java Collections Framework Prof. Steven R. Lerman and Dr. V. Judson Harward Goals To introduce you to the data structure classes that come
Note: This App is under development and available for testing on request. Note: This App is under development and available for testing on request. Note: This App is under development and available for
Java applets. SwIG Jing He
Java applets SwIG Jing He Outline What is Java? Java Applications Java Applets Java Applets Securities Summary What is Java? Java was conceived by James Gosling at Sun Microsystems Inc. in 1991 Java is
Analysis Of Source Lines Of Code(SLOC) Metric
Analysis Of Source Lines Of Code(SLOC) Metric Kaushal Bhatt 1, Vinit Tarey 2, Pushpraj Patel 3 1,2,3 Kaushal Bhatt MITS,Datana Ujjain 1 [email protected] 2 [email protected] 3 [email protected]
Approach of Unit testing with the help of JUnit
Approach of Unit testing with the help of JUnit Satish Mishra [email protected] About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality
Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example
Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative
Classes and Objects in Java Constructors. In creating objects of the type Fraction, we have used statements similar to the following:
In creating objects of the type, we have used statements similar to the following: f = new (); The parentheses in the expression () makes it look like a method, yet we never created such a method in our
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
Test-Driven Development
Test-Driven Development An Introduction Mattias Ståhlberg [email protected] Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.
Object Oriented Programming with Java. School of Computer Science University of KwaZulu-Natal
Object Oriented Programming with Java School of Computer Science University of KwaZulu-Natal January 30, 2006 2 Object Oriented Programming with Java Notes for the Computer Science Module Object Oriented
Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions
COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement
Analysis of Micromouse Maze Solving Algorithms
1 Analysis of Micromouse Maze Solving Algorithms David M. Willardson ECE 557: Learning from Data, Spring 2001 Abstract This project involves a simulation of a mouse that is to find its way through a maze.
CMSC 202H. ArrayList, Multidimensional Arrays
CMSC 202H ArrayList, Multidimensional Arrays What s an Array List ArrayList is a class in the standard Java libraries that can hold any type of object an object that can grow and shrink while your program
EPiServer and XForms - The Next Generation of Web Forms
EPiServer and XForms - The Next Generation of Web Forms How EPiServer's forms technology allows Web site editors to easily create forms, and developers to customize form behavior and appearance. WHITE
3704-0147 Lithichrome Stone Paint- LT Blue Gallon 3704-0001 Lithichrome Stone Paint- Blue 2 oz 3704-0055 Lithichrome Stone Paint- Blue 6 oz 3704-0082
Lithichrome Colors Item Number Item Description 120-COL Lithichrome Stone Paint - Any Size or Color 3704-0011 Lithichrome Stone Paint- LT Blue 2 oz 3704-0066 Lithichrome Stone Paint- LT Blue 6 oz 3704-0093
Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go
Debugging ESE112 Java Programming: API, Psuedo-Code, Scope It is highly unlikely that you will write code that will work on the first go Bugs or errors Syntax Fixable if you learn to read compiler error
El Dorado Union High School District Educational Services
El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.
Chapter 2: Entity-Relationship Model
Chapter 2: Entity-Relationship Model Entity Sets Relationship Sets Design Issues Mapping Constraints Keys E R Diagram Extended E-R Features Design of an E-R Database Schema Reduction of an E-R Schema to
6.1. Example: A Tip Calculator 6-1
Chapter 6. Transition to Java Not all programming languages are created equal. Each is designed by its creator to achieve a particular purpose, which can range from highly focused languages designed for
MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.
Exam Name MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) The JDK command to compile a class in the file Test.java is A) java Test.java B) java
Pantone Matching System Color Chart PMS Colors Used For Printing
Pantone Matching System Color Chart PMS Colors Used For Printing Use this guide to assist your color selection and specification process. This chart is a reference guide only. Pantone colors on computer
Algorithm and Flowchart. 204112 Structured Programming 1
Algorithm and Flowchart 204112 Structured Programming 1 Programming Methodology Problem solving Coding Problem statement and analysis Develop a high-level algorithm Detail out a low-level algorithm Choose
Collections in Java. Arrays. Iterators. Collections (also called containers) Has special language support. Iterator (i) Collection (i) Set (i),
Arrays Has special language support Iterators Collections in Java Iterator (i) Collections (also called containers) Collection (i) Set (i), HashSet (c), TreeSet (c) List (i), ArrayList (c), LinkedList
University of Twente. A simulation of the Java Virtual Machine using graph grammars
University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine
paragraph(s). The bottom mark is for all following lines in that paragraph. The rectangle below the marks moves both marks at the same time.
MS Word, Part 3 & 4 Office 2007 Line Numbering Sometimes it can be helpful to have every line numbered. That way, if someone else is reviewing your document they can tell you exactly which lines they have
Java CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
Callbacks. Callbacks Copyright 2007 by Ken Slonneger 1
Callbacks Callbacks refer to a mechanism in which a library or utility class provides a service to clients that are unknown to it when it is defined. Suppose, for example, that a server class creates a
