Presentation is loading. Please wait.

Presentation is loading. Please wait.

Creating an Object that can draw itself The paint method can ‘draw’ because it is passed a graphics environment as a parameter. If a class method is passed.

Similar presentations


Presentation on theme: "Creating an Object that can draw itself The paint method can ‘draw’ because it is passed a graphics environment as a parameter. If a class method is passed."— Presentation transcript:

1 Creating an Object that can draw itself The paint method can ‘draw’ because it is passed a graphics environment as a parameter. If a class method is passed a graphics environment (ie. object of type Graphics or Graphics2D), then the method can draw also. eg.) public void xxx (Graphics g){ g.drawRect(10,10, 200,150); }

2 Suppose we have a class Dog…

3 and we want to provide one more behavior……… we want to be able to draw a Dog object. The draw method will need a Graphics environment if it is going to draw………….

4 File DogApplet.java import java.applet.Applet; import java.awt.Graphics; //An applet that draws two Dogs public class DogApplet extends Applet { public void paint(Graphics g){ Dog myDog = new Dog(“Spot”,“beagle”); myDog.setAge(10); Dog yourDog = new Dog(“Rufus”); myDog.draw(g); yourDog.draw(g); }

5 File Dog..java import java.awt.Graphics; public class Dog{ //regular class constructors and methods public void draw(Graphics g) { int x = 50; int y = 50; //draw start position g.drawOval(x,y,100,50); g.drawOval(x+12,y+12,5,5); //eyes g.drawOval(x+25,y+12, 5,5); g.fillOval(x+16,y+25, 10,10); //nose g.fillOval(x+62,y+13,50,75); //left ear } what happens when we draw 3 dogs???

6 File Dog..java import java.awt.Graphics; public class Dog{ private int x; //drawing position private int y; public void draw(Graphics g) { g.drawOval(x,y,100,50); g.drawOval(x+12,y+12,5,5); //eyes g.drawOval(x+25,y+12, 5,5); g.fillOval(x+16,y+25, 10,10); //nose g.fillOval(x+62,y+13,50,75); //left ear } Add position to the class data. how does this position get initialized???

7 import java.awt.Graphics; public class Dog{ // other instance variables private int x; //drawing position private int y; public Dog(String nm, int xpos, int ypos){ nm = name; x = xpos; y = ypos; } public void draw(Graphics g) { …. } Constructor for Dog accepts start position for drawing ……

8 Updated …File DogApplet.java import java.applet.Applet; import java.awt.Graphics; //An applet that draws two Dogs public class DogApplet extends Applet { public void paint(Graphics g){ Dog myDog = new Dog(“Spot”,“beagle”, 100,100); myDog.setAge(10); Dog yourDog = new Dog(“Rufus”, 300,50); myDog.draw(g); yourDog.draw(g); }

9 look at implementation………….. DogN.java, DogAppN.java………

10 What if our draw method needed to be more elaborate, and use Ellipse2D.Double, or Rectangle2D.Double?? 2 solutions………

11 Typical methods which can be overridden in Applet.. void paint (Graphics g) -- we know this void init() – called once by the applet container when the applet is loaded for execution Typical actions are to initialize fields, create GUI components, load sounds and images

12 Typical methods which can be overridden in Applet.. void start() – called after init. If the browser visits another website and returns, method start is called again. This method performs any tasks that must be performed when the applet is ‘restarted’

13 Typical methods which can be overridden in Applet.. void stop() - called when the applet should stop executing – usually when the user of the browser leaves the page. Any tasks that are required to suspend the applet’s execution are done here

14 Typical methods which can be overridden in Applet.. void destroy() - called when the applet is being removed from memory, usually when browser close. Any tasks needed to release resources are done here.


Download ppt "Creating an Object that can draw itself The paint method can ‘draw’ because it is passed a graphics environment as a parameter. If a class method is passed."

Similar presentations


Ads by Google