Java Applet Lifecycle Methods

advertisement
Java Applets
Objective:
Learn how to develop Java programs that interact
with users through a Web browser
CSTP WS00
CS423 (cotter)
1
Java Applet Lifecycle Methods
• init ( )
– Called when applet is loaded onto user’s 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)
3
Applet Presentation
• Uses applet Tag in HTML
<HTML>
<TITLE> MyNewApplet </TITLE>
<BODY>
Here’s My first Applet
<APPLET CODE = “MyNewApplet” WIDTH = 300 HEIGHT = 200>
</APPLET>
</BODY>
</HTML>
CSTP WS00
CS423 (cotter)
4
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)
5
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)
7
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)
8
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
TextField hourField;
TextField minuteField;
TextField timeField;
Button tickButton;
Button setButton;
}
CSTP WS00
CS423 (cotter)
9
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”>
Here’s 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 user’s 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
Download