gayle j yaverbaum, phd professor of information systems penn state harrisburg
TRANSCRIPT
Gayle J Yaverbaum, PhDProfessor of Information SystemsPenn State Harrisburg
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 Multithreade
d 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
Each JAVA Applet extends or inherits the JApplet class
Methods in JApplet class do nothing unless overriden:
init : called automatically when applet is runstart: automatically called after initpaint: called once after init, when a panel changes, and also after repaint () method is calledstop: called when execution is finisheddestroy:cleans up after applet removed from memory
Business
KMart Macys
ServiceBusiness
Kinkos
RetailBusiness
The child inherits characteristics of the parent: (both methods and data)
Note: Single inheritance in JAVA
is-a
An Applet Sample Structure
import javax.swing.*; //programs are derived // from javax.swingimport java.awt.*; //abstract windows toolkitpublic 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)
I. File/New/Project/Java/JavaProject/Next/Finish
Project Name: FirstApplet, in the appropriate space.
Lab: Applet I
CREATE A Package in the project
I. File/New/Package
II. Enter a Package Name: firstapplet, in the appropriate space
III. 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 Ipackage 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.*;
Your screen!
package firstapplet;import java.swing.JApplet; Import java.awt.*;public class FirstApplet extends JApplet{
}
You will see something similar to this!
package firstapplet;import java.awt.*;Import javax.swing.JApplet;public class FirstApplet extends JApplet { public void init () { } public void paint (Graphics g) { }}
Add the following within the class!
Save your program1.Right Click on FirstApplet
Project 2.Build project3.Run4.Run As 5.Java Applet
Applet Demo Explanation
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
1. init : is called automatically when applet is run2. paint: is called once after init and when a repaint
method is called.a. super.paint (g) calls the super class inherited
from JApplet. Omitting it can cause some subtle drawing errors.
b. paint receives the Graphics class as a parameter.
The form is (type)<object or variable>
public void draw (Graphics g){
Graphics2D g2=(Graphics2D)g;
}
Casting: to convert the object "g" to "g2"
A Graphics object is passed as a parameter to paint ()
setColor is a method in the Graphics class black (default), blue, cyan,
darkGray, gray, green, lightGray, magenta, orange, pink, red, white, and yellow
drawString is a method in Graphics Parameters are: string, x
coordinate, y coordinate
Reminders! FirstApplet is 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!
<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>
XSLT
DTD: Element with attributes
<!ELEMENT jclass (app+)><!ELEMENT jclass (app+)><!ATTLIST app <!ATTLIST app class CDATA "none"class CDATA "none"
width CDATA "none"width CDATA "none" height CDATA "none"height CDATA "none"
>>
<!ATTLIST elementname attributename type 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); } }
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
Draw Method Ideas