23
Mar 21, 2 022 Applets

26-Jun-15 Applets. 2 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

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 26-Jun-15 Applets. 2 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

Apr 18, 2023

Applets

Page 2: 26-Jun-15 Applets. 2 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

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

Page 3: 26-Jun-15 Applets. 2 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

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

Page 4: 26-Jun-15 Applets. 2 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

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

Page 5: 26-Jun-15 Applets. 2 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

5

The genealogy of Applet

java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.Applet

Page 6: 26-Jun-15 Applets. 2 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

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

Page 7: 26-Jun-15 Applets. 2 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

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 ); }}

Page 8: 26-Jun-15 Applets. 2 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

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)

Page 9: 26-Jun-15 Applets. 2 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

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

Page 10: 26-Jun-15 Applets. 2 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

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

Page 11: 26-Jun-15 Applets. 2 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

11

start( ), stop( ) and destroy( ) 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 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

Page 12: 26-Jun-15 Applets. 2 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

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

init()

start()

stop()

destroy()

do some work

Page 13: 26-Jun-15 Applets. 2 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

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

Page 14: 26-Jun-15 Applets. 2 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

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

Java’s 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)

Page 15: 26-Jun-15 Applets. 2 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

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);}

Page 16: 26-Jun-15 Applets. 2 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

16

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

Page 17: 26-Jun-15 Applets. 2 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

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 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 If you follow these rules and the screen still doesn’t change,

I probably won’t be able to find the problem, either :-(

Page 18: 26-Jun-15 Applets. 2 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

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 applet’s status line. Each call overwrites the previous call. You have to allow time to read the line!

Page 19: 26-Jun-15 Applets. 2 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

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

Page 20: 26-Jun-15 Applets. 2 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

20

Structure of an HTML page

HTML

TITLE

BODYHEAD

(content)

Most HTML tags are containers.

A container is <tag> to </tag>

Page 21: 26-Jun-15 Applets. 2 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

21

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>

Page 22: 26-Jun-15 Applets. 2 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

22

<param name="arraysize" value="10">

public String getParameter(String name)

String s = getParameter("arraysize");

try { size = Integer.parseInt (s) }catch (NumberFormatException e) {…}

Page 23: 26-Jun-15 Applets. 2 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

23

The End