SlideShare a Scribd company logo
Applets
Applets
• An applet is a Panel that allows interaction with a
Java program
• A applet is typically embedded in a Web page and
can be run from a browser
• You need special HTML in the Web page to tell
the browser about the applet
• For security reasons, applets run in a sandbox:
they have no access to the client’s file system
Applet Support
• Most modern browsers support Java 1.4 if they
have the appropriate plugin
• In the PC labs, Internet Explorer 5.5 has been
updated, but Netscape has not
• The best support isn't a browser, but the
standalone program appletviewer
• In general you should try to write applets that can
be run with any browser
What an applet is
• You write an applet by extending the class Applet
• Applet is just a class like any other; you can even
use it in applications if you want
• When you write an applet, you are only writing
part of a program
• The browser supplies the main method
The genealogy of Applet
java.lang.Object
|
+----java.awt.Component
|
+----java.awt.Container
|
+----java.awt.Panel
|
+----java.applet.Applet
The simplest possible applet
import java.applet.Applet;
public class TrivialApplet extends Applet { }
<applet
code="TrivialApplet.class”
width=150 height=100>
</applet>
TrivialApplet.java
TrivialApplet.html
The simplest reasonable applet
import java.awt.*;
import java.applet.Applet;
public class HelloWorld extends Applet {
public void paint( Graphics g ) {
g.drawString( "Hello World!", 30, 30 );
}
}
Applet methods
public void init ()
public void start ()
public void stop ()
public void destroy ()
public void paint (Graphics)
Also:
public void repaint()
public void update (Graphics)
public void showStatus(String)
public String getParameter(String)
Why an applet works
• You write an applet by extending the class Applet
• Applet defines methods init( ), start( ), stop( ),
paint(Graphics), destroy( )
• These methods do nothing--they are stubs
• You make the applet do something by overriding
these methods
• When you create an applet in BlueJ, it automatically
creates sample versions of these methods for you
public void init ( )
• This is the first method to execute
• It is an ideal place to initialize variables
• It is the best place to define the GUI Components
(buttons, text fields, scrollbars, etc.), lay them out,
and add listeners to them
• Almost every applet you ever write will have an
init( ) method
public void start ( )
• Not always needed
• Called after init( )
• Called each time the page is loaded and restarted
• Used mostly in conjunction with stop( )
• start() and stop( ) are used when the Applet is
doing time-consuming calculations that you don’t
want to continue when the page is not in front
public void stop( )
• Not always needed
• Called when the browser leaves the page
• Called just before destroy( )
• Use stop( ) if the applet is doing heavy
computation that you don’t want to continue when
the browser is on some other page
• Used mostly in conjunction with start()
public void destroy( )
• Seldom needed
• Called after stop( )
• Use to explicitly release system resources (like
threads)
• System resources are usually released
automatically
Methods are called in this order
• init and destroy are only called
once each
• start and stop are called
whenever the browser enters and
leaves the page
• do some work is code called by
your listeners
• paint is called when the applet
needs to be repainted
init()
start()
stop()
destroy()
do some work
public void paint(Graphics g)
• Needed if you do any drawing or painting other than
just using standard GUI Components
• Any painting you want to do should be done here, or
in a method you call from here
• Painting that you do in other methods may or may not
happen
• Never call paint(Graphics), call repaint( )
repaint( )
• Call repaint( ) when you have changed something
and want your changes to show up on the screen
• repaint( ) is a request--it might not happen
• When you call repaint( ), Java schedules a call to
update(Graphics g)
update( )
• When you call repaint( ), Java schedules a call to
update(Graphics g)
• Here's what update does:
public void update(Graphics g) {
// Fills applet with background color, then
paint(g);
}
Sample Graphics methods
• A Graphics is something you can paint on
g.drawRect(x, y, width, height);
g.fillRect(x, y, width, height);
g.drawOval(x, y, width, height);
g.fillOval(x, y, width, height);
g.setColor(Color.red);
g.drawString(“Hello”, 20, 20); Hello
Painting at the right time is hard
• Rule #1: Never call paint(Graphics g), call
repaint( ).
• Rule #2: Do all your painting in paint, or in a
method that you call from paint.
• Rule #3: If you paint on any Graphics other than
the Applet’s, call its update method from the
Applet’s paint method.
• Rule #4. Do your painting in a separate Thread.
• These rules aren't perfect, but they should help.
Other useful Applet methods
• System.out.println(String s)
– Works from appletviewer, not from browsers
– Automatically opens an output window.
• showStatus(String) displays the String in the
applet’s status line.
– Each call overwrites the previous call.
– You have to allow time to read the line!
Applets are not magic!
• Anything you can do in an applet, you can do in
an application.
• You can do some things in an application that you
can’t do in an applet.
• If you want to access files from an applet, it must
be a “trusted” applet.
• Trusted applets are beyond the scope of this
course.
Structure of an HTML page
HTML
TITLE
BODYHEAD
(content)
• Most HTML tags
are containers.
• A container is
<tag> to </tag>
HTML
<html>
<head>
<title> Hi World Applet </title>
</head>
<body>
<applet code="HiWorld.class”
width=300 height=200>
<param name="arraysize" value="10">
</applet>
</body>
</html>
<param name="arraysize" value="10">
• public String getParameter(String name)
• String s = getParameter("arraysize");
• try { size = Integer.parseInt (s) }
catch (NumberFormatException e) {…}
The End

More Related Content

What's hot

Java applet - java
Java applet - javaJava applet - java
Java applet - java
Rubaya Mim
 
Java applets
Java appletsJava applets
Applet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java AppletsApplet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java Applets
amitksaha
 
Applet progming
Applet progmingApplet progming
Applet progming
VIKRANTHMALLIKARJUN
 
27 applet programming
27  applet programming27  applet programming
27 applet programming
Ravindra Rathore
 
Alexandre Iline Rit 2010 Java Fxui
Alexandre Iline Rit 2010 Java FxuiAlexandre Iline Rit 2010 Java Fxui
Alexandre Iline Rit 2010 Java Fxui
rit2010
 
Spring aop
Spring aopSpring aop
Spring aop
sanskriti agarwal
 

What's hot (7)

Java applet - java
Java applet - javaJava applet - java
Java applet - java
 
Java applets
Java appletsJava applets
Java applets
 
Applet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java AppletsApplet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java Applets
 
Applet progming
Applet progmingApplet progming
Applet progming
 
27 applet programming
27  applet programming27  applet programming
27 applet programming
 
Alexandre Iline Rit 2010 Java Fxui
Alexandre Iline Rit 2010 Java FxuiAlexandre Iline Rit 2010 Java Fxui
Alexandre Iline Rit 2010 Java Fxui
 
Spring aop
Spring aopSpring aop
Spring aop
 

Similar to Applets

Applet
AppletApplet
Applets
AppletsApplets
Applets
Rishav Upreti
 
L18 applets
L18 appletsL18 applets
L18 applets
teach4uin
 
Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01
Abhishek Khune
 
Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
Tareq Hasan
 
Java applet
Java appletJava applet
Java applet
Rohan Gajre
 
Till applet skeleton
Till applet skeletonTill applet skeleton
Till applet skeleton
SouvikKole
 
Applets 101-fa06
Applets 101-fa06Applets 101-fa06
Applets 101-fa06
nrayan
 
Java applet
Java appletJava applet
Java applet
GaneshKumarKanthiah
 
Applet intro
Applet introApplet intro
Applet intro
Nitin Birari
 
Applet.pptx
Applet.pptxApplet.pptx
Applet.pptx
LakachewYezihalem
 
Applet and graphics programming
Applet and graphics programmingApplet and graphics programming
Applet and graphics programming
mcanotes
 
Applet init nd termination.59
Applet init nd termination.59Applet init nd termination.59
Applet init nd termination.59
myrajendra
 
Applet
AppletApplet
Applet
Amir Shokri
 
Advanced Programming, Java Programming, Applets.ppt
Advanced Programming, Java Programming, Applets.pptAdvanced Programming, Java Programming, Applets.ppt
Advanced Programming, Java Programming, Applets.ppt
miki304759
 
Java chapter 7
Java chapter 7Java chapter 7
Java chapter 7
Abdii Rashid
 
Java applet
Java appletJava applet
Java applet
Elizabeth alexander
 
applet.pptx
applet.pptxapplet.pptx
applet.pptx
SachinBhosale73
 
Applet Life Cycle in Java with brief introduction
Applet Life Cycle in Java with brief introductionApplet Life Cycle in Java with brief introduction
Applet Life Cycle in Java with brief introduction
devicse
 
Java Applets
Java AppletsJava Applets
Java Applets
Danial Mirza
 

Similar to Applets (20)

Applet
AppletApplet
Applet
 
Applets
AppletsApplets
Applets
 
L18 applets
L18 appletsL18 applets
L18 applets
 
Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01
 
Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
 
Java applet
Java appletJava applet
Java applet
 
Till applet skeleton
Till applet skeletonTill applet skeleton
Till applet skeleton
 
Applets 101-fa06
Applets 101-fa06Applets 101-fa06
Applets 101-fa06
 
Java applet
Java appletJava applet
Java applet
 
Applet intro
Applet introApplet intro
Applet intro
 
Applet.pptx
Applet.pptxApplet.pptx
Applet.pptx
 
Applet and graphics programming
Applet and graphics programmingApplet and graphics programming
Applet and graphics programming
 
Applet init nd termination.59
Applet init nd termination.59Applet init nd termination.59
Applet init nd termination.59
 
Applet
AppletApplet
Applet
 
Advanced Programming, Java Programming, Applets.ppt
Advanced Programming, Java Programming, Applets.pptAdvanced Programming, Java Programming, Applets.ppt
Advanced Programming, Java Programming, Applets.ppt
 
Java chapter 7
Java chapter 7Java chapter 7
Java chapter 7
 
Java applet
Java appletJava applet
Java applet
 
applet.pptx
applet.pptxapplet.pptx
applet.pptx
 
Applet Life Cycle in Java with brief introduction
Applet Life Cycle in Java with brief introductionApplet Life Cycle in Java with brief introduction
Applet Life Cycle in Java with brief introduction
 
Java Applets
Java AppletsJava Applets
Java Applets
 

More from Abhishek Khune

07 java collection
07 java collection07 java collection
07 java collection
Abhishek Khune
 
Clanguage
ClanguageClanguage
Clanguage
Abhishek Khune
 
Java Notes
Java NotesJava Notes
Java Notes
Abhishek Khune
 
Threads
ThreadsThreads
Sorting
SortingSorting
Packages in java
Packages in javaPackages in java
Packages in java
Abhishek Khune
 
Week0 introduction
Week0 introductionWeek0 introduction
Week0 introduction
Abhishek Khune
 
Binary trees
Binary treesBinary trees
Binary trees
Abhishek Khune
 
Clanguage
ClanguageClanguage
Clanguage
Abhishek Khune
 
06 abstract-classes
06 abstract-classes06 abstract-classes
06 abstract-classes
Abhishek Khune
 
Java unit3
Java unit3Java unit3
Java unit3
Abhishek Khune
 
Java unit2
Java unit2Java unit2
Java unit2
Abhishek Khune
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
Abhishek Khune
 
Shared memory
Shared memoryShared memory
Shared memory
Abhishek Khune
 
Lecture 14 (inheritance basics)
Lecture 14 (inheritance basics)Lecture 14 (inheritance basics)
Lecture 14 (inheritance basics)
Abhishek Khune
 

More from Abhishek Khune (15)

07 java collection
07 java collection07 java collection
07 java collection
 
Clanguage
ClanguageClanguage
Clanguage
 
Java Notes
Java NotesJava Notes
Java Notes
 
Threads
ThreadsThreads
Threads
 
Sorting
SortingSorting
Sorting
 
Packages in java
Packages in javaPackages in java
Packages in java
 
Week0 introduction
Week0 introductionWeek0 introduction
Week0 introduction
 
Binary trees
Binary treesBinary trees
Binary trees
 
Clanguage
ClanguageClanguage
Clanguage
 
06 abstract-classes
06 abstract-classes06 abstract-classes
06 abstract-classes
 
Java unit3
Java unit3Java unit3
Java unit3
 
Java unit2
Java unit2Java unit2
Java unit2
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
 
Shared memory
Shared memoryShared memory
Shared memory
 
Lecture 14 (inheritance basics)
Lecture 14 (inheritance basics)Lecture 14 (inheritance basics)
Lecture 14 (inheritance basics)
 

Recently uploaded

SWOT analysis in the project Keeping the Memory @live.pptx
SWOT analysis in the project Keeping the Memory @live.pptxSWOT analysis in the project Keeping the Memory @live.pptx
SWOT analysis in the project Keeping the Memory @live.pptx
zuzanka
 
Bossa N’ Roll Records by Ismael Vazquez.
Bossa N’ Roll Records by Ismael Vazquez.Bossa N’ Roll Records by Ismael Vazquez.
Bossa N’ Roll Records by Ismael Vazquez.
IsmaelVazquez38
 
Skimbleshanks-The-Railway-Cat by T S Eliot
Skimbleshanks-The-Railway-Cat by T S EliotSkimbleshanks-The-Railway-Cat by T S Eliot
Skimbleshanks-The-Railway-Cat by T S Eliot
nitinpv4ai
 
Electric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger HuntElectric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger Hunt
RamseyBerglund
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
MysoreMuleSoftMeetup
 
How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17
Celine George
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
haiqairshad
 
Stack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 MicroprocessorStack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 Microprocessor
JomonJoseph58
 
Standardized tool for Intelligence test.
Standardized tool for Intelligence test.Standardized tool for Intelligence test.
Standardized tool for Intelligence test.
deepaannamalai16
 
A Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two HeartsA Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two Hearts
Steve Thomason
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
GeorgeMilliken2
 
Data Structure using C by Dr. K Adisesha .ppsx
Data Structure using C by Dr. K Adisesha .ppsxData Structure using C by Dr. K Adisesha .ppsx
Data Structure using C by Dr. K Adisesha .ppsx
Prof. Dr. K. Adisesha
 
THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...
THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...
THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...
indexPub
 
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.pptLevel 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Henry Hollis
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
Jyoti Chand
 
How to Predict Vendor Bill Product in Odoo 17
How to Predict Vendor Bill Product in Odoo 17How to Predict Vendor Bill Product in Odoo 17
How to Predict Vendor Bill Product in Odoo 17
Celine George
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
iammrhaywood
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
Krassimira Luka
 
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
National Information Standards Organization (NISO)
 

Recently uploaded (20)

SWOT analysis in the project Keeping the Memory @live.pptx
SWOT analysis in the project Keeping the Memory @live.pptxSWOT analysis in the project Keeping the Memory @live.pptx
SWOT analysis in the project Keeping the Memory @live.pptx
 
Bossa N’ Roll Records by Ismael Vazquez.
Bossa N’ Roll Records by Ismael Vazquez.Bossa N’ Roll Records by Ismael Vazquez.
Bossa N’ Roll Records by Ismael Vazquez.
 
Skimbleshanks-The-Railway-Cat by T S Eliot
Skimbleshanks-The-Railway-Cat by T S EliotSkimbleshanks-The-Railway-Cat by T S Eliot
Skimbleshanks-The-Railway-Cat by T S Eliot
 
Electric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger HuntElectric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger Hunt
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
 
How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
 
Stack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 MicroprocessorStack Memory Organization of 8086 Microprocessor
Stack Memory Organization of 8086 Microprocessor
 
Standardized tool for Intelligence test.
Standardized tool for Intelligence test.Standardized tool for Intelligence test.
Standardized tool for Intelligence test.
 
A Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two HeartsA Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two Hearts
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
 
Data Structure using C by Dr. K Adisesha .ppsx
Data Structure using C by Dr. K Adisesha .ppsxData Structure using C by Dr. K Adisesha .ppsx
Data Structure using C by Dr. K Adisesha .ppsx
 
THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...
THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...
THE SACRIFICE HOW PRO-PALESTINE PROTESTS STUDENTS ARE SACRIFICING TO CHANGE T...
 
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.pptLevel 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
 
Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
 
How to Predict Vendor Bill Product in Odoo 17
How to Predict Vendor Bill Product in Odoo 17How to Predict Vendor Bill Product in Odoo 17
How to Predict Vendor Bill Product in Odoo 17
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
 
Temple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation resultsTemple of Asclepius in Thrace. Excavation results
Temple of Asclepius in Thrace. Excavation results
 
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
Jemison, MacLaughlin, and Majumder "Broadening Pathways for Editors and Authors"
 

Applets

  • 2. Applets • An applet is a Panel that allows interaction with a Java program • A applet is typically embedded in a Web page and can be run from a browser • You need special HTML in the Web page to tell the browser about the applet • For security reasons, applets run in a sandbox: they have no access to the client’s file system
  • 3. Applet Support • Most modern browsers support Java 1.4 if they have the appropriate plugin • In the PC labs, Internet Explorer 5.5 has been updated, but Netscape has not • The best support isn't a browser, but the standalone program appletviewer • In general you should try to write applets that can be run with any browser
  • 4. What an applet is • You write an applet by extending the class Applet • Applet is just a class like any other; you can even use it in applications if you want • When you write an applet, you are only writing part of a program • The browser supplies the main method
  • 5. The genealogy of Applet java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.Applet
  • 6. The simplest possible applet import java.applet.Applet; public class TrivialApplet extends Applet { } <applet code="TrivialApplet.class” width=150 height=100> </applet> TrivialApplet.java TrivialApplet.html
  • 7. The simplest reasonable applet import java.awt.*; import java.applet.Applet; public class HelloWorld extends Applet { public void paint( Graphics g ) { g.drawString( "Hello World!", 30, 30 ); } }
  • 8. Applet methods public void init () public void start () public void stop () public void destroy () public void paint (Graphics) Also: public void repaint() public void update (Graphics) public void showStatus(String) public String getParameter(String)
  • 9. Why an applet works • You write an applet by extending the class Applet • Applet defines methods init( ), start( ), stop( ), paint(Graphics), destroy( ) • These methods do nothing--they are stubs • You make the applet do something by overriding these methods • When you create an applet in BlueJ, it automatically creates sample versions of these methods for you
  • 10. public void init ( ) • This is the first method to execute • It is an ideal place to initialize variables • It is the best place to define the GUI Components (buttons, text fields, scrollbars, etc.), lay them out, and add listeners to them • Almost every applet you ever write will have an init( ) method
  • 11. public void start ( ) • Not always needed • Called after init( ) • Called each time the page is loaded and restarted • Used mostly in conjunction with stop( ) • start() and stop( ) are used when the Applet is doing time-consuming calculations that you don’t want to continue when the page is not in front
  • 12. public void stop( ) • Not always needed • Called when the browser leaves the page • Called just before destroy( ) • Use stop( ) if the applet is doing heavy computation that you don’t want to continue when the browser is on some other page • Used mostly in conjunction with start()
  • 13. public void destroy( ) • Seldom needed • Called after stop( ) • Use to explicitly release system resources (like threads) • System resources are usually released automatically
  • 14. Methods are called in this order • init and destroy are only called once each • start and stop are called whenever the browser enters and leaves the page • do some work is code called by your listeners • paint is called when the applet needs to be repainted init() start() stop() destroy() do some work
  • 15. public void paint(Graphics g) • Needed if you do any drawing or painting other than just using standard GUI Components • Any painting you want to do should be done here, or in a method you call from here • Painting that you do in other methods may or may not happen • Never call paint(Graphics), call repaint( )
  • 16. repaint( ) • Call repaint( ) when you have changed something and want your changes to show up on the screen • repaint( ) is a request--it might not happen • When you call repaint( ), Java schedules a call to update(Graphics g)
  • 17. update( ) • When you call repaint( ), Java schedules a call to update(Graphics g) • Here's what update does: public void update(Graphics g) { // Fills applet with background color, then paint(g); }
  • 18. Sample Graphics methods • A Graphics is something you can paint on g.drawRect(x, y, width, height); g.fillRect(x, y, width, height); g.drawOval(x, y, width, height); g.fillOval(x, y, width, height); g.setColor(Color.red); g.drawString(“Hello”, 20, 20); Hello
  • 19. Painting at the right time is hard • Rule #1: Never call paint(Graphics g), call repaint( ). • Rule #2: Do all your painting in paint, or in a method that you call from paint. • Rule #3: If you paint on any Graphics other than the Applet’s, call its update method from the Applet’s paint method. • Rule #4. Do your painting in a separate Thread. • These rules aren't perfect, but they should help.
  • 20. Other useful Applet methods • System.out.println(String s) – Works from appletviewer, not from browsers – Automatically opens an output window. • showStatus(String) displays the String in the applet’s status line. – Each call overwrites the previous call. – You have to allow time to read the line!
  • 21. Applets are not magic! • Anything you can do in an applet, you can do in an application. • You can do some things in an application that you can’t do in an applet. • If you want to access files from an applet, it must be a “trusted” applet. • Trusted applets are beyond the scope of this course.
  • 22. Structure of an HTML page HTML TITLE BODYHEAD (content) • Most HTML tags are containers. • A container is <tag> to </tag>
  • 23. HTML <html> <head> <title> Hi World Applet </title> </head> <body> <applet code="HiWorld.class” width=300 height=200> <param name="arraysize" value="10"> </applet> </body> </html>
  • 24. <param name="arraysize" value="10"> • public String getParameter(String name) • String s = getParameter("arraysize"); • try { size = Integer.parseInt (s) } catch (NumberFormatException e) {…}