Computer Graphics |
Applets and AWT 1.1 Graphics |
Applet Creation:
<HTML>
<HEAD>
<TITLE>A Template for Loading Applets</TITLE>
</HEAD>
<BODY>
<H1>A Template for Loading Applets</H1>
<P>
<APPLET CODE="AppletTemplate.class"
WIDTH=120 HEIGHT=60>
<B>Error! You must use a Java-enabled
browser.</B>
</APPLET>
</BODY>
</HTML>
public class AppletTemplate extends Applet {
// Variable declarations.
public void init()
{
// Variable
initializations, image loading, etc.
}
public void paint(Graphics
g) {
// Drawing
operations.
}
}
Applet Code
import java.applet.Applet;
import java.awt.*;
public class JavaJump
extends Applet {
private Image jumpingJava; // Instance var
declarations here
public void init() {
// Initializations here
setBackground(Color.white);
setFont(new Font("SansSerif", Font.BOLD,
18));
jumpingJava = getImage(getDocumentBase(),
"images/Jumping-Java.gif");
add(new Label("Great Jumping Java!"));
System.out.println("Yow!
I'm jiving with Java.");
}
public void paint(Graphics g) { //
Drawing here
g.drawImage(jumpingJava, 0, 50,
this);
}
}
Corresponding HTML
Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Jumping Java</TITLE>
</HEAD>
<BODY BGCOLOR="BLACK" TEXT="WHITE">
<H1>Jumping Java</H1>
<P>
<APPLET CODE="JavaJump.class"
WIDTH=250 HEIGHT=335>
<B>Sorry, this example
requires Java.</B>
</APPLET>
</BODY>
</HTML>
JAVA Console - Netscape or IE
Appletviewer - output sent to window that
started applet
Using a text editor
create the following Java source code:
import java.awt.*;
import java.applet.*;
public class First extends Applet{
public void paint(Graphics g) {
g.drawString("MY
FIRST APPLET",5,25);
}
}
Save the file as
First.java.
The name of the file must be the same as
the name of the class in the source code, with the extension .java.
Compile the source code
using javac. At the DOS prompt, issue the command:
> javac First.java
javac will create the bytecode file named First.class .
Create the following
HTML file:
<HTML>
<TITLE> First Java Applet </TITLE>
<H3> This is my first Java applet </H3>
<HR>
<APPLET CODE = "First.class" WIDTH=100 HEIGHT=30>
</APPLET>
<HR>
<H4>Applet is done ........ </H4>
</HTML>
Save this file with
the extension.html.
In Netscape or IE, open the HTML file.
CODE - the name of
.class file
- Required attribute.
- Syntax: CODE="filename.class"
WIDTH and HEIGHT -
screen area for the applet in pixels
-Required attributes.
-Syntax: WIDTH=a_number HEIGHT=a_number
CODEBASE - specifies
the base URL or directory
-Syntax: CODEBASE=base_URL
-Must use the CODEBASE
attribute if the .class file is not in the current directory.
NAME - used for interapplet
communication
-Syntax: NAME=name
ALIGN - Aligns the
applet as an embedded image
-Syntax: ALIGN=left|center|right|top|texttop|middle|absmiddle|baseline|bottom
VSPACE - Forces n
blank pixels above and below the applet
-Syntax: VSPACE=n
HSPACE - Forces n
blank pixels to left and right of the applet
-Syntax: HSPACE=n
Example
The following applet prints the height and width of the applet rectangle, specified by the HTML tag APPLET.
import java.awt.*;
import java.applet.*;
public class Size extends Applet{
public void paint(Graphics g){
Dimension d = getSize();
g.drawString("Height
is = "+d.height+ " Width is
="+d.width,10,100);
}
}
The HTML code for this:
<TITLE> The Size Applet </TITLE>
<H3> This applet prints the height and width
of the applet rectangle.</H3>
<HR>
<APPLET CODE = "Size.class"
HEIGHT=300 WIDTH=200></APPLET>
<HR>
<H3> We are done …… </H3>
2. Using PARAM HTML tag
- HTML document send values:
text string, x-position, y-position, font, a file name, etc., to an applet
- Use
PARAM tag in the HTML document
- PARAM tag captured by the
applet using the getParameter()
method.
- PARAM tag is placed within
<APPLET> …</APPLET>.
- PARAM tag requires two
attributes: NAME and VALUE.
- Syntax for PARAM tag:
<PARAM
NAME=". . . . . " VALUE=".. . . . . ">
Example
Java Code
import java.applet.Applet;
import java.awt.*;
public class HelloWWW2 extends
Applet {
public void init() {
setFont(new
Font("SansSerif", Font.BOLD, 30));
Color background
= Color.gray;
Color foreground
= Color.darkGray;
String backgroundType
= getParameter("BACKGROUND")
;
if (backgroundType
!= null) {
if (backgroundType.equalsIgnoreCase("LIGHT")) {
background = Color.white;
foreground = Color.black;
} else if (backgroundType.equalsIgnoreCase("DARK")) {
background = Color.black;
foreground = Color.white;
}
}
setBackground(background);
setForeground(foreground);
}
public void paint(Graphics g) {
g.drawString("Hello,
World Wide Web.", 5, 35);
}
}
HTML Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Customizable
HelloWWW Applet</TITLE>
</HEAD>
<BODY>
<H1>Customizable HelloWWW
Applet</H1>
<P>
<APPLET CODE="HelloWWW2.class"
WIDTH=400 HEIGHT=40>
<PARAM NAME="BACKGROUND"
VALUE="LIGHT">
<B>Error! You must
use a Java-enabled browser.</B>
</APPLET>
<P>
<APPLET CODE="HelloWWW2.class"
WIDTH=400 HEIGHT=40>
<PARAM NAME="BACKGROUND"
VALUE="DARK">
<B>Error! You must
use a Java-enabled browser.</B>
</APPLET>
<P>
<APPLET CODE="HelloWWW2.class"
WIDTH=400 HEIGHT=40>
<B>Error! You must
use a Java-enabled browser.</B>
</APPLET>
</BODY>
public void start()
- start() method called to
begin applet execution.
- Called after the init()
method each time the applet is revisited in a Web page.
- Method used to perform any
operation required when the this applet is loaded.
- Implementation of this
method provided by the Applet class does nothing.
public void stop()
- stop() is called when browser
or appletviewer informs applet that it should stop its execution.
- Called when Web page that
contains this applet has been replaced by another page, and t before the
applet is to be destroyed.
- Method may be used to perform
any operation required each time the Web page containing it is no longer
visible (e.g. suspending an animation).
- Implementation of this
method provided by the Applet class does nothing.
public void destroy()
- destroy() called by the
browser or appletviewer to inform this applet that it is being reclaimed and
that it should destroy any resources that it has allocated.
- Method to perform any operation
rquired before it is destroyed (e.g. killing threads).
- The implementation of this
method provided by the Applet class does nothing.
import java.applet.Applet;
import java.awt.*;
public class Fonts extends Applet {
Font font1, font2, font3, font4, font5;
public void init(){
font1 = new Font("Serif",Font.ITALIC,10);
font2 = new Font("SanSerif",Font.BOLD,15);
font3 = new Font("Monospaced",Font.PLAIN,20);
font4 = new Font("Helvetiva",Font.BOLD+Font.ITALIC,25);
font5 = new Font("Courier",Font.PLAIN,30);
}
public void paint(Graphics g){
g.setFont(font1);
g.drawString("Serif
in Italic with size 10",30,10);
g.setFont(font2);
g.drawString("SanSerif
in Bold with size 15",30,45);
g.setFont(font3);
g.drawString("Monospaced
in plain with size 20",30,75);
g.setFont(font4);
g.drawString("Helvetica
in Bold italic with size 25",30,120);
g.setFont(font5);
g.drawString("Courier
in Plain with size 30",30,150);
}
}
2. Initialize the Color object using new and a constructor:
color_object
= new Color (r,g,b);
r,g and b are integers between 0 and 255 specifying
color components.
3. Install the Color object, using the setColor()
method of the Graphics class.
setColor(color_object_name)
Java provides 13 predefined Color objects with static field names of the
Color class:
Color.black
Color.blue
Color.cyan
Color.darkGray
Color.gray
Color.green
Color.lightGray
Color.magenta
Color.orange
Color.pink
Color.red
Color.white
Color.yellow
myColor = new Color(100,0,255);
g.setColor(myColor);
g.drawString("Pace University 1",10,20);
g.setColor(Color.black);
g.drawString("Pace University 2",10,40);
g.setColor(Color.blue);
g.drawString("Pace University 3",10,60);
g.setColor(Color.green);
g.drawString("Pace University 4",10,80);
g.setColor(Color.magenta);
g.drawString("Pace University 5",10,100);
g.setColor(Color.red);
g.drawString("Pace University 6",10,120);
g.setColor(Color.yellow);
g.drawString("Pace University 7",10,140);
myColor = myColor.darker();
g.setColor(myColor);
g.drawString("Pace University 8",10,160);
myColor = myColor.brighter();
g.setColor(myColor);
g.drawString("Pace University 9",10,180);
}
}
drawRect(x,y,width,height)
- x, y, width, height - all
integers
- Draws a rectangle with the
specified width and height, at the top left corner at (x,y)
drawRoundRect(x,y,width,height,arcWidth,arcHeight)
- x, y, width, height, arcWidth,
arcHeight - integers
- Draws an outlined round cornered
rectangle
- left and right edges of the
rectangle are x and x+width, respectively.
- top and bottom edges of the
rectangle are at y and y+height.
- ArcHeight and arcWidth determine
the horizontal and vertical diameters at the four corners.
import java.awt.*;
import java.applet.*;
public class Graphics1 extends Applet{
public void paint(Graphics g){
g.setColor(Color.green);
g.drawLine(30,30,60,60);
g.setColor(Color.blue);
g.drawRect(10,10,100,100);
g.setColor(Color.red);
g.drawRoundRect(20,20,80,80,25,25);
}
}
fillRoundRect(x,y,width,height,arcWidth,arcHeight)
- x, y, width, height, arcWidth, arcHeight - integers
- Fills an outlined round cornered rectangle.
- left and right edges of the rectangle are x and x+width,
respectively.
- top and bottom edges of the rectangle are at y and
y+height.
- arcHeight and arcWidth determine the horizontal and
vertical diameters at the four corners.
fillRect(x,y,width,height)
- Same as drawRect(), but fills rectangle with default
color.
import java.awt.*;
import java.applet.*;
public class Graphics2 extends Applet{
public void paint(Graphics g){
g.setColor(Color.blue);
g.fillRect(10,10,100,100);
g.setColor(Color.red);
g.fillRoundRect(20,20,80,80,25,25);
}
}
drawOval(x,y,width,height)
- x, y, width, height - all integers.
- Draws an ellipse within the square (Square will not
show).
fillOval(x,y,width,height)
- x, y, width, height - all integers
- Draws an ellipse and fills with the current color
.
import java.awt.*;
import java.applet.*;
public class Graphics3 extends Applet{
public void paint(Graphics g){
g.setColor(Color.blue);
g.drawOval(10,10,150,100);
g.setColor(Color.red);
g.fillOval(20,20,40,80);
}
}
drawArc(x,y,width,height,startAngle,arcAngle)
- x, y, width, height, startAngle, arcAngle - all integers
- The center of the arc will be at the center of
a square
- The startAngle is the angle made with the horizontal
line.
fillArc(x, y, width, height,
startAngle, arcAngle)
- x, y, width, height, startAngle, arcAngle - all integers
- The center of the arc will be at the center of a
square as.
- The startAngle is the angle made with the horizontal
line.
import java.awt.*;
import java.applet.*;
public class Graphics4 extends Applet{
public void paint(Graphics g){
g.setColor(Color.blue);
g.drawArc(10,10,100,100,15,45);
g.setColor(Color.red);
g.fillArc(10,10,100,100,135,45);
}
}
drawPolygon(xArray,yArray,n)
- n is an integer, representing the number of points.
- xArray and yArray are integer arrays with n elements
each.
- Draws a polygon by joining lines (x[0],y[0]) and
(x[1],y[1]), (x[1],y[1]) and (x[2],y[2]), … ,
(x[n-2],y[n-2]) and (x[n-1],y[n-1]),
import java.awt.*;
import java.applet.*;
public class Graphics9 extends Applet {
int x[] = {100,70,60,70,100,130,140,130,100};
int y[] = {10,20,50,80,90,80,50,20,10};
int n = 9;
public void paint(Graphics g)
{
g.setColor(Color.green);
g.drawPolygon(x,y,n);
}
}
fillPolygon(xArray,yArray,n)
- n is an integer, representing the number of points.
- xarray and yarray are integer arrays with n elements
each.
- Draws, a filled with default color, polygon by joining
lines (x[0],y[0]) and (x[1],y[1]), (x[1],y[1])
and (x[2],y[2]), …, (x[n-2],y[n-2])
and (x[n-1],y[n-1]).
import java.awt.*;
import java.applet.*;
public class Graphics10 extends Applet {
int x[] = {100,70,60,70,100,130,140,130,100};
int y[] = {10,20,50,80,90,80,50,20,10};
int n = 9;
public void paint(Graphics g)
{
g.setColor(Color.green);
g.fillPolygon(x,y,n);
}
}
// An applet that loads an image from a relative URL.
public class JavaMan1 extends
Applet {
private Image javaMan;
public void init()
{
javaMan =
getImage(getCodeBase(),"images/Java-Man.gif");
}
public void paint(Graphics
g) {
g.drawImage(javaMan,
0, 0, this);
}
}
g.drawImage(javaMan, 0, 0,
this)
drawImage(Image image,int left,int top,ImageObserver observer);
^ current window
Example
// An applet that
loads an image from a Absolute URL.
import java.applet.Applet;
import java.awt.*;
import java.net.*; // Required
for web access
public class JavaMan2 extends Applet {
private Image javaMan;
public void init() {
try {
URL imageFile = new
URL("http://www.corewebprogramming.com" +
"/images/Java-Man.gif");
javaMan = getImage(imageFile);
} catch(MalformedURLException mue)
{
showStatus("Bogus image
URL.");
System.out.println("Bogus
URL");
}
}
public void paint(Graphics g) {
g.drawImage(javaMan, 0, 0, this);
}
}