Applets - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Applets

Description:

An applet is a Panel that allows interaction with a Java program ... call repaint() when something in Java's own components (Buttons, TextFields, etc. ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 24
Provided by: VILLA80
Category:

less

Transcript and Presenter's Notes

Title: Applets


1
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 clients 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
TrivialApplet.java
import java.applet.Applet public class
TrivialApplet extends Applet
TrivialApplet.html
ltapplet code"TrivialApplet.class
width150 height100gt lt/appletgt
7
The simplest reasonable applet
import java.awt. import java.applet.Applet pub
lic 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 ( )
  • init() is the first method to execute
  • It is an ideal place to initialize variables
  • If you are creating a GUI, init() 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
start( ), stop( ) and destroy( )
  • start() and stop( ) are used when the Applet is
    doing time-consuming calculations that you dont
    want to continue when the page is not in front
  • public void start() is called
  • Right after init( )
  • Each time the page is loaded and restarted
  • public void stop( ) is called
  • When the browser leaves the page
  • Just before destroy( )
  • public void destroy( ) is called after stop( )
  • Use destroy() to explicitly release system
    resources (like threads)
  • System resources are usually released
    automatically

12
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

13
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( )

14
repaint( )
  • Call repaint( ) when you have changed something
    and want your changes to show up on the screen
  • You do not need to call repaint() when something
    in Javas own components (Buttons, TextFields,
    etc.)
  • You do need to call repaint() after drawing
    commands (drawRect(...), fillRect(...),
    drawString(...), etc.)
  • repaint( ) is a request--it might not happen
  • When you call repaint( ), Java schedules a call
    to update(Graphics g)

15
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)

16
Sample Graphics methods
  • A Graphics is something you can paint on

17
Painting at the right time is hard
  • When you modify common components (Buttons,
    Labels, TextFields, etc.), Java keeps the screen
    display up to date
  • When you paint on a Graphics object, you have to
    make your changes appear on the screen
  • To help ensure your changes appear on screen,
    follow these rules
  • Rule 1 Never call paint(Graphics g), call
    repaint( )
  • Rule 2 Do all your painting in paint, or in a
    method that is called from paint
  • Rule 3 If you paint on any Graphics other than
    the Applets, call its update method from the
    Applets paint method
  • Rule 4. Do your painting in a separate Thread
  • These rules aren't perfect, but they should help
  • If you follow these rules and the screen still
    doesnt change, I probably wont be able to find
    the problem, either -(

18
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
    applets status line.
  • Each call overwrites the previous call.
  • You have to allow time to read the line!

19
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
    cant 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.

20
Structure of an HTML page
  • Most HTML tags are containers.
  • A container is lttaggt to lt/taggt

21
HTML
lthtmlgt ltheadgt lttitlegt Hi World Applet
lt/titlegt lt/headgt ltbodygt ltapplet
code"HiWorld.class width300
height200gt ltparam name"arraysize"
value"10"gt lt/appletgt lt/bodygt lt/htmlgt
22
ltparam name"arraysize" value"10"gt
  • public String getParameter(String name)
  • String s getParameter("arraysize")
  • try size Integer.parseInt (s) catch
    (NumberFormatException e)

23
The End
Write a Comment
User Comments (0)
About PowerShow.com