You are on page 1of 20

Java Applets

Objective:
Learn how to develop Java programs that interact with users through a Web browser

CSTP WS00

CS423 (cotter)

Java Applet Lifecycle Methods


init ( )
Called when applet is loaded onto users machine. Prep work or one-time-only work done at this time.

start ( )
Called when applet becomes visible (page called up). Called every time applet becomes visible.

stop ( )
Called when applet becomes hidden (page loses focus).

destroy ( )
Guaranteed to be called when browser shuts down.
CSTP WS00 CS423 (cotter) 2

Applets vs. Applications


Extend Applet instead of Frame Use of init( ) vs. constructor No use of main( ) Default layout managers
application: applet: BorderLayout FlowLayout

Security

CSTP WS00

CS423 (cotter)

Applet Presentation
Uses applet Tag in HTML
<HTML> <TITLE> MyNewApplet </TITLE> <BODY> Heres My first Applet <APPLET CODE = MyNewApplet WIDTH = 300 HEIGHT = 200> </APPLET> </BODY> </HTML>

CSTP WS00

CS423 (cotter)

Applet Inheritance (extension)


Object - cosmic base class Component - button, listBox Container - dialog box Panel - sub-window, group of buttons, etc. Applet - small application, web enabled MyApplet - specific instance of an applet

CSTP WS00

CS423 (cotter)

MyTextApplet
import java.applet.*; import java.awt.*; import java.awt.event.*; public class MyTextApplet extends Applet { public void init() { setBackground(Color.gray); Panel p = new Panel(); ButtonAction aButtonAction = new ButtonAction(); p.setLayout(new FlowLayout()); tickButton = new Button("Tick"); tickButton.addActionListener(aButtonAction); p.add(tickButton);
CSTP WS00 CS423 (cotter) 6

MyTextApplet
setButton = new Button("Set time"); setButton.addActionListener(aButtonAction); p.add(setButton); hourField = new TextField("12", 3); p.add(hourField); minuteField = new TextField("00", 3); p.add(minuteField); timeField = new TextField("", 12); p.add(timeField); add(p); }

CSTP WS00

CS423 (cotter)

MyTextApplet
Class ButtonAction implements ActionListener { public void actionPerformed(ActionEvent evt) { String buttoncommand = evt.getActionCommand(); if (buttoncommand.equals("Tick")) { int minutes = Integer.parseInt(minuteField.getText()); minutes += 1; String min = String.valueOf(minutes); minuteField.setText(min); }

CSTP WS00

CS423 (cotter)

MyTextApplet
else if (buttoncommand.equals("Set time")) { int hours = Integer.parseInt(hourField.getText()); int minutes = Integer.parseInt(minuteField.getText()); String tim = hourField.getText() + ":" + minuteField.getText(); timeField.setText(tim); } } } //end of ButtonAction private private private private private }
CSTP WS00 CS423 (cotter) 9

TextField hourField; TextField minuteField; TextField timeField; Button tickButton; Button setButton;

HTML file for MyTextApplet


<HTML> <HEAD> <TITLE> My Text Applet Demo </TITLE> </HEAD> <BODY background="Image1.jpg"> <H1> Here's my Demo Applet </H1> <HR SIZE = 3> <APPLET CODE = MyTextApplet WIDTH = 300 HEIGHT = 100> </APPLET> </BODY> </HTML>

CSTP WS00

CS423 (cotter)

10

MyTextApplet Output

CSTP WS00

CS423 (cotter)

11

Parameter Passing to Applets


import java.applet.*; import java.awt.*; public class FontApplet extends Applet { public void paint (Graphics g) { String fontName = getParameter ("font"); int fontSize = Integer.parseInt (getParameter("size")); Font f = new Font(fontName, Font.BOLD, fontSize); g.setFont (f); g.drawString("Welcome to CS423", 25, 50); } }

CSTP WS00

CS423 (cotter)

12

HTML file for FontApplet


<HTML> <TITLE> FontApplet </TITLE> <BODY background=Image1.jpg> Heres a demo of parameter passing to an Applet <hr> <APPLET CODE = "FontApplet" WIDTH = 300 HEIGHT = 200> <PARAM NAME = font VALUE = "Helvetica"> <PARAM NAME = size VALUE = "24"> </APPLET> </BODY> </HTML>

CSTP WS00

CS423 (cotter)

13

FontApplet.htm

CSTP WS00

CS423 (cotter)

14

Using Applet Parameters in VJ++

CSTP WS00

CS423 (cotter)

Java Applet Lifecycle Methods


(again...)
init ( )
Called when applet is loaded onto users machine. Prep work or one-time-only work done at this time.

start ( )
Called when applet becomes visible (page called up). Called every time applet becomes visible.

stop ( )
Called when applet becomes hidden (page loses focus).

destroy ( )
Guaranteed to be called when browser shuts down.
CSTP WS00 CS423 (cotter) 16

LifecycleApplet.java
import java.applet.Applet; import java.awt.Graphics; public class LifecycleApplet extends Applet { public LifecycleApplet() { System.out.println("Constructor running..."); } public void init() { System.out.println("This is init."); } public void start() { System.out.println("Applet started."); } public void paint(Graphics theGraphics) { theGraphics.drawString("Hello, World!", 0, 50); System.out.println("Applet just painted."); } public void stop() { System.out.println("Applet stopped."); } public void destroy() { System.out.println("Applet destroyed."); } CSTP CS423 (cotter) 17 } WS00

LifecycleApplet.java

CSTP WS00

CS423 (cotter)

18

LifecycleApplet.java

CSTP WS00

CS423 (cotter)

19

Summary
Java Applet managed through applet lifecycle Applet can interact with browser through HTML code Uses Event programming model to interact with user (using buttons, textfields, etc.)

CSTP WS00

CS423 (cotter)

20

You might also like