310 likes | 412 Views
Gayle J Yaverbaum, PhD Professor of Information Systems Penn State Harrisburg. INFSY 547: WEB-Based Technologies. OO Concepts Reviewed. Programs consist of communicating objects. Objects consist of: fields/data (values or attributes) = properties. methods= behaviors.
E N D
Gayle J Yaverbaum, PhD Professor of Information Systems Penn State Harrisburg INFSY 547: WEB-Based Technologies
OO Concepts Reviewed • Programs consist of communicating objects. • Objects consist of: • fields/data (values or attributes) = properties. • methods= behaviors. • Instantiation = process of creating an object.
More OOP Concepts • Abstract data type (ADT) • Encapsulation • Polymorphism
Java features • Portable • Multithreaded • Secure
Java Graphics/speed • JAVA has very good graphics • Applets provide access to Graphical User Interface (GUI) • JAVA is fast • Better Support in recent years
JAVA Development Environment Eclipse 3.2 • Review tutorial-March 1 • Use for applet development
JavaApplets • Each JAVA Applet extends or inheritsthe JApplet class • Methods in JApplet class do nothing unless overriden: • init : called automatically when • applet is run • start: automatically called after init • paint: called once after init, when a panel changes, • and also after repaint () method is called • stop: called when execution is • finished • destroy:cleans up after applet • removed from memory
Business RetailBusiness ServiceBusiness KMart Macys Kinkos The child inherits characteristics of the parent: (both methods and data) is-a Note: Single inheritance in JAVA
An Applet Sample Structure import javax.swing.*; //programs are derived // from javax.swing import java.awt.*; //abstract windows toolkit public class <name of your applet> extends JApplet { public void init () { } public void paint (Graphics g) { } }
Lab: Applet I • CREATE A PROJECT in Eclipse (Tutorial (if review is necessary) • File/New/Project/Java/JavaProject/Next/Finish • Project Name: FirstApplet, in the appropriate space.
Lab: Applet I • CREATE A Package in the project • File/New/Package • Enter a Package Name: firstapplet, in the appropriate space • Finish
Lab: Applet I • Create a class within the package • Caution: Do not check any buttons on bottom of the screen • Right Click on the package name • Create a class • Enter the Name: of the class – call it FirstApplet • Finish
Lab: Applet I Your screen! • package firstapplet; • public class FirstApplet { • } • Extend the class so that it will inherit methods from JApplet public class FirstApplet extends JApplet • Add two import statements after the package statement: import javax.swing.JApplet; • import java.awt.*;
You will see something similar to this! package firstapplet; import java.swing.JApplet; Import java.awt.*; public class FirstApplet extends JApplet { }
Add the following within the class! package firstapplet; import java.awt.*; Import javax.swing.JApplet; public class FirstApplet extends JApplet { public void init () { } public void paint (Graphics g) { } }
Save your program • Right Click on FirstApplet Project • Build project • Run • Run As • Java Applet
Add some code! (use your own string values and color) package firstapplet; import java.awt.*; Import javax.swing.JApplet; public class FirstApplet extends JApplet { public void init () { } public void paint (Graphics g) { super.paint (g); Graphics2D g2 = (Graphics2D)g g2.setColor (Color.blue); g2.drawString (“Gayle J Yaverbaum”, 20, 10); g2.drawString (“Penn State Harrisburg”, 20,25); } } Caution: DO NOT cut and paste from Powerpoint
Applet Demo Explanation • init : is called automatically when applet is run • paint: is called once after init and when a repaint method is called. • super.paint (g) calls the super class inherited from JApplet. Omitting it can cause some subtle drawing errors. • paint receives the Graphics class as a parameter.
Casting: to convert the object "g" to "g2" The form is (type)<object or variable> public void draw (Graphics g) { Graphics2D g2=(Graphics2D)g; }
A Graphics object is passed as a parameter to paint () • setColoris a method in the Graphics class • black (default), blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, and yellow • drawStringis a method in Graphics • Parameters are: string, x coordinate, y coordinate
Reminders! • FirstAppletis name of class and must be same as the class name • By convention - class names begin with a capital letter • By convention - package names are the same name as the project name and all lower case • By convention method names begin with a lower-case letter
xml file for FirstApplet <?xml version="1.0"?> <!DOCTYPE jclass SYSTEM "jclass.dtd"> <jclass> <app class="firstapplet.FirstApplet" width="300" height="250"> </app> </jclass> Of note!
XSLT • <xsl:template match=“jclass”> • <xsl:for-each select="app"> • <applet> • <xsl:attribute name="code"> • <xsl:value-of select="@class"/> • </xsl:attribute> • <xsl:attribute name="width"> • <xsl:value-of select="@width"/> • </xsl:attribute> • <xsl:attribute name="height"> • <xsl:value-of select="@height"/> • </xsl:attribute> • </applet> • <br/><br/><br/> • </xsl:for-each> • </xsl template>
DTD: Element with attributes <!ELEMENT jclass (app+)> <!ATTLIST app class CDATA "none" width CDATA "none" height CDATA "none" > <!ATTLIST elementnameattributenametype default CDATA means character string
Reviews • Text: Chapter 7 • Reviews • A Team Home Page • A member Home Page • One Applet Page • 2..4 sub pages
Extending the Application DrawClass Create another class, DrawClass, in your project package Use the same package name, firstapplet, as before Create a method, draw, in the class Draw receives the Graphics class from the calling method
public class DrawClass { public void draw (Graphics g) { } }
public class FirstApplet extends JApplet { DrawClass d; public void init () { d = new DrawClass (); } public void paint (Graphics g) { super.paint(g); Graphics2D g2=(Graphics2D)g; g2.setColor (Color.blue); g2.drawString ("Gayle J Yaverbaum", 50, 20); g2.drawString ("Penn State Harrisburg", 50,30); d.draw(g); } }
Draw Method Ideas public void draw (Graphics g) { super.paint(g); Graphics2D g2=(Graphics2D)g; g2.setPaint (Color.red); g2.setStroke( (new BasicStroke (10.0f))); g2.draw (new Rectangle2D.Double(100, 50, 100,50)); } Sun Java Tutorial on 2D Graphics