Top Banner
Graphics • Graphics – Graphical Spreadsheets – Java Pixels and Coordinate System – ObjectEditor Shapes • Java Vectors – Variable-Sized Instances • Java Enumeration
25

Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Dec 14, 2015

Download

Documents

Abdiel Sowell
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Graphics

• Graphics– Graphical Spreadsheets– Java Pixels and Coordinate System– ObjectEditor Shapes

• Java Vectors– Variable-Sized Instances

• Java Enumeration

Page 2: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

A Square With Text

Page 3: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Java Coordinate System

Y

X(0,0)

(3,2)

pixels

Page 4: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Describing Shapes

x1, y1

x3, y3

x2, y2

w1

h1

w3

h3

w2

h2

Bounding Rectangle

hello

x4, y4

w4

h4

Page 5: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

A Square With Text

import shapes.RectangleModel;import shapes.TextModel;public interface SquareWithText {

public RectangleModel getSquare(); public void setSquare(RectangleModel newVal); public TextModel getText ();

}

Page 6: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

A Square With Textimport shapes.RectangleModelimport shapes.TextModelpublic class ASquareWithText implements SquareWithText { RectangleModel square; TextModel text; … // constant declarations public ASquareWithText() {

square = new RectangleModel (INIT_X, INIT_Y, INIT_SIDE_LENGTH, INIT_SIDE_LENGTH);

text = new TextModel(TEXT_STRING);placeText();

}void placeText() {text.setCenter(square.getCenter());}public RectangleModel getSquare () {return square;}public void setSquare (RectangleModel newVal) {

square = newVal;placeText();

}

public TextModel getText () {return text};}}

Page 7: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

w2

h2

x2, y2

x3, y3

w3

h3

ObjectEditor Classes

x1, y1

w1

h1

Bounding Rectangle

hello

x4, y4

w4

h4x5, y5

RectangleModel r = new RectangleModel(x1, y1, h1,w1)OvalModel r = new OvalModel(x3, y3, h3,w3)

LineModel r = new LineModel(x2, y2, h2,w2)TextModel r = new TextModel(x4, y4, h4,w4)

PointModel r = new PointModel(x5,y5))

Page 8: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

AWT Classes

x1, y1

w1

h1x5, y5

Rectangle r = new Rectangle(x1, y1, h1,w1)

Point r = new Point(x5, y5))

r.x x1r.x = x4p.x x1

Dimension d = r.getSize()

w1d.widthPoint p = r.getLocation()

Page 9: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

ObjectEditor Vs AWT Classes

Page 10: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Methods on ObjectEditor Classes getX(), setX(), getY(), setY(), getWidth(), setWidth(), getHeight(), setHeight. getCenter(), setCenter(), getNWCorner(), setNWCorner(), getNECorner(), setNECorner(), getSWCorner(), setSWCorner(), getSECorner(), setSECorner(),. isFilled(), setFilled() getColor(), setColor()

Page 11: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Shapes Demo

Page 12: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Plotting Points

Variable-Size Collection

History

Elements accessed by ObjectEditorConventions for exporting elements

Page 13: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Conventions for Variable-Sized Collection

import shapes.PointModel;public interface PointHistory {

public void addElement (int x, int y);public PointModel elementAt (int

index); public int size();

}

Arbitrary Type.

Read methods

Write method

Page 14: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Read Vs Write Methods

• Read Methods– Used to get components of object– Getter methods– size(), addElement()

• Write Methods– Used to change components of object– Setter methods– addElement(), deleteElement(), replaceElement()

• Distinction independent of Conventions

Page 15: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

nullVector Instance

Vectors (java.util.Vector)Vector v;

James Dean

Joe Doe

ALoan Instance

v = new Vector();v.addElement(“James Dean”)v.addElement(“Joe Doe”)

v.addElement(new ALoan())

Vector Instance

v.addElement(new Vector())

v.addElement(5)

Object

Page 16: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Methods of Class Vector public final int size() public final Object elementAt(int index) public final void addElement(Object obj) public final void setElementAt(Object obj, int index) public final void insertElementAt(Object obj, int index) public final boolean removeElement(Object obj) public final void removeElementAt(int index) public final int indexOf(Object obj) public final Enumeration elements()

Page 17: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Methods of Interface Enumeration (java.util.Enumeration)

public boolean hasMoreElements(); public Object nextElement();

Enumeration elements = vector.elements();while ( elements.hasMoreElements()) System.out.println(elements.nextElement();

Page 18: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Methods of Interface Enumeration (java.util.Enumeration)

public boolean hasMoreElements(); public Object nextElement();

for (Enumeration elements = vector.elements(); elements.hasMoreElements();) System.out.println(elements.nextElement();

Page 19: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Point history user

null

Using Vector Directly as Point History

Vector v = new Vector();

v.addElement(new APointModel(0,0);

PointModelInstancePointModelInstance

v.removeElementAt(0);

Vector Instance

addElement(): Object void

elementAt(): index Object

removeElementAt(): Object void

v.addElement(new APointModel(10,90);v.addElement(new Vector());

Violating Least Privilege

size(): intVector Instance

Page 20: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Point history user

APointHistory instance

elementAt(): index PointModel

addElement(): int*int void

size(): int

null

Encapsulating Vector in APointHistory

Vector v = new Vector();

PointModelInstance

PointHistory pointHistory = new APointHistory();

pointHistory.addElement(0,0);pointHistory.addElement(new Vector())

addElement(): Object void

elementAt(): index Object

removeElementAt(): Object void

size(): intVector Instance

Page 21: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

APointHistory Implementation

import java.util.Vector;public class APointHistory implements PointHistory {

Vector contents = new Vector();public void addElement (int x, int y) {

contents.addElement(new PointModel(x, y));}public PointModel elementAt (int index) {

return (PointModel) contents.elementAt(index);}public int size() {

return contents.size();}

}

Page 22: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Animation

Animating point

Page 23: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Creating Animating Point

static final int ANIMATING_POINT_X = 0, ANIMATING_POINT_Y = 0;PointModel animatingPoint = new PointModel

(ANIMATING_POINT_X, ANIMATING_POINT_Y);public PointModel getAnimatingPoint() {

return animatingPoint;}

Page 24: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Animating the Point

public void animate () { Enumeration points = contents.elements(); while (points.hasMoreElements()) {

animatingPoint.setCenter( ((PointModel) points.nextElement()).getCenter()); } animatingPoint.setX(ANIMATING_POINT_X); animatingPoint.setY(ANIMATING_POINT_Y);}

Page 25: Graphics –Graphical Spreadsheets –Java Pixels and Coordinate System –ObjectEditor Shapes Java Vectors –Variable-Sized Instances Java Enumeration.

Animating the Pointpublic synchronized void animate () { Enumeration points = contents.elements(); while (points.hasMoreElements()) {

animatingPoint.setCenter( ((PointModel) points.nextElement()).getCenter());

try {Thread.sleep(ANIMATION_DELAY);

} catch (InterruptedException e) {System.out.println("Animation interrupted");

} } animatingPoint.setX(ANIMATING_POINT_X); animatingPoint.setY(ANIMATING_POINT_Y);}