Applets - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Applets

Description:

... write an applet by extending the class ... Do your painting in a separate Thread. These rules aren't perfect, but they should help ... archive='HiWorld.jar' ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 25
Provided by: drdavem1
Category:
Tags: applets | archive | by | thread

less

Transcript and Presenter's Notes

Title: Applets


1
Applets
2
Applets
  • An applet is a program that 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
  • You dont need to supply a main method the
    browser does that
  • When you write an applet, you are writing only
    part of a program
  • You supply certain methods that the browser calls
  • For security reasons, applets run in a sandbox
    they have no access to the clients file system

3
Applet Support
  • Most modern browsers support applets if they have
    the appropriate plugin
  • You need a version of the plugin at least as new
    as the version of Java you are trying to run
  • The plugin is usually installed automatically
    when you install a new version of Java
  • The best support isn't a browser, but the
    standalone program appletviewer
  • appletviewer uses only the applets in a Web page,
    and ignores everything else
  • If you want to reach the widest audience, you
    should use Java 1.1, and AWT instead of Swing
  • This is because Microsoft no longer supports Java

4
What an applet is
  • You write an applet by extending the class
    JApplet
  • JApplet 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
  • Once you understand how applets work, you can
    write a program that function either as an applet
    or as an applicationjust write a main method
    that calls the right methods at the right time
  • Such programs have the ugly name appletcations

5
The genealogy of JApplet
java.lang.Object ----java.awt.Component
----java.awt.Container

----java.awt.Panel
----java.applet.Applet

----javax.swing.JApplet
6
The simplest possible applet
TrivialApplet.java
import javax.swing.JApplet public class
TrivialApplet extends JApplet
TrivialApplet.html
ltapplet code"TrivialApplet.class"
width"150" height"100"gt lt/appletgt
7
The simplest reasonable applet
import java.awt. import javax.swing.JApplet pu
blic class HelloWorld extends JApplet
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
    JApplet
  • 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
  • init() is an ideal place to initialize variables
  • init() is the best place to define the GUI
    Components (buttons, text fields, checkboxes,
    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 (JButtons,
    JLabels, JTextFields, 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 JApplet methods
  • System.out.println(String s)
  • Works from appletviewer, not from browsers
  • Automatically opens an output window.
  • showStatus(String s) 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
The ltappletgt tag
  • The ltapplet ...gt ... lt/appletgt tag is what tells
    your browser to put an applet here
  • ltappletgt has three required attributes
  • code"HiWorld.class" tells the browser where to
    find the code
  • Alternatively, if your code is in a .jar file,
    you can sayarchive"HiWorld.jar
  • width"300" tells the browser how many pixels
    wide to make the applet window
  • A typical monitor resolution is 72 pixels/inch
  • height"200" tells the browser how many pixels
    high to make the applet window
  • In a browser, you cannot resize the applet but
    in appletviewer, you can resize the applet

23
ltparam name"arraysize" value"10"gt
  • You can put parameters in the HTML page, to be
    read by the applet
  • Parameters go between ltappletgt and lt/appletgt
  • All parameters are read by the applet as Strings
  • To read a parameter, use the applet methodpublic
    String getParameter(String name)
  • Example
  • String s getParameter("arraysize")
  • try size Integer.parseInt (s) catch
    (NumberFormatException e)

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