Upload
madeline-sullivan
View
227
Download
0
Embed Size (px)
Citation preview
CSC 205 – Java Programming II
Lecture 23
Applet
Types of Java Programs
Applets Applications
Console applications Graphics applications
Applications are stand-alone programs An application must have a main method
What Is Applet
An applet is a program that adheres to a set of
conventions run within a Java-compatible Web browser downloaded from a Web server
An applet must extend the Applet class
Download From Web Server
Advantages & Disadvantages
• Advantages – Can be accessed where Internet is available
– When GUIs need to be upgraded, just change them at one location: on the Web server
• Disadvantages – Time to download may be long
– Security could be an issue
Security Policies
Browsers impose the following restrictions on any applet that is loaded over the network: An applet cannot load libraries or define native
methods. It cannot ordinarily read or write files, or start
any program on the host that's executing it. It cannot make network connections except to
the host that it came from. It cannot read certain system properties. Windows that an applet brings up look different
than windows that an application brings up.
Inheritance Hierarchy
java.applet Class Appletjava.lang.Object
| +--java.awt.Component
| +--java.awt.Container
| +--java.awt.Panel
| +--java.applet.Applet
A Typical Applet
import java.applet.Applet; import java.awt.Graphics; public class Simple extends Applet {
//methods to be overriddenpublic void init() {…} public void start() {…} public void stop() {…} public void destroy() {…} void addItem(String newWord) { …; repaint(); } public void paint(Graphics g) {…} //inherited from the Container class
}
Life Cycle of an Applet
• Loading the Applet – An instance of the applet's controlling class (an
Applet subclass) is created
– The applet initializes itself
– The applet starts running
• Leaving and Returning to the Applet's Page– The applet stops running when leaving the page
– the applet can start itself again when returning
Methods for Milestones
An applet can override the following methods init To initialize the applet each time it's
loaded (or reloaded). start To start the applet's execution, such
as when the applet's loaded or when the user revisits a page that contains the applet.
stop To stop the applet's execution, such as when the user leaves the applet's page or quits the browser.
destroy To perform a final cleanup in preparation for unloading
Methods for Drawing
An applet can override the following two display methods (of the Container class) : paint
The basic display method. Many applets implement the paint method to draw the applet's representation within a browser page.
update
A method you can use along with paint to improve drawing performance
Animation
To update applet changes invoke the repaint method (inherited from the Component class) periodically
The paint method will be invoked when the applet is repainted
Event Handling
Applets inherit a group of event-handling methods from the Component class
To react to an event, an applet must override either the appropriate event-specific method,
or the handleEvent method (from the Component class)
Event Handling – Example
Adding the following code to the Simple applet makes it respond to mouse clicks.
import java.awt.Event;
. . .
public boolean mouseDown(Event event, int x, int y) {
addItem("click!... ");
return true;
}
Deprecation
Unfortunately, many of the samples available online or in textbooks use deprecated methods
You will be warned when you compile code with deprecated methods
Use the –deprecation option to see detailed infojavac –deprecation Simple.java
Replace deprecated methods with newer methods as recommended by latest version of Java API
Deprecation
Using UI Components
Because the Applet class inherits from the AWT Container class, it's easy to add components to applets and to use layout managers to control the components' onscreen positions. add
Adds the specified Component remove
Removes the specified Component setLayout
Sets the layout manager
Testing Applets
Two ways to run an applet Use the applet viewer
appletviewer simple.html Embed applets into Web pages
Both need to use the applet tag in HTML files<APPLET CODE=AppletSubclass.class WIDTH=anInt HEIGHT=anInt>
</APPLET>
HTML – An Overview
Markup language use tags to represent the meaning and/or
content of the enclosed data Some features
Not case sensitive Loose syntax Predefined tags Text is the only data type
More Examples
The following two tags are equivalent <APPLET CODE=Simple.class WIDTH=100 HEIGHT=100>
</APPLET>
<applet code=“Simple.class” width=“100” height=“100”>
</applet>
A Simple HTML File
<html> <body> <p>Click on the applet to start
the animation.</p> <!– this line is comment -->
<applet code="SelectionSortApplet.class" width="300" height="300">
</applet> </body></html>
Thread
A thread is a program unit that is executed independently of other parts of the program
The JVM executes each thread for a short time and then switches to another thread
A programmer can concentrate on what tasks each thread need to perform and possibly, the communication between
threads
Write a Thread
Follow the stepsWrite a class that extends the Thread
classPlace the code for the task in the run
methodCreate an object of the your thread
classCall the start method to activate your
thread
Sample Thread Class
public class GreetingThread extends Thread{ public GreetingThread(String aGreeting){ greeting = aGreeting; }
public void run() { try { for (int i = 1; i <= REPETITIONS; i++) { Date now = new Date(); System.out.println(now + " " + greeting); sleep(DELAY); } } catch (InterruptedException exception){ } }
Running A Thread – I
public class GreetingThreadTest{
public static void main(String[] args) { GreetingThread t1
= new GreetingThread("Hello, World!"); GreetingThread t2
= new GreetingThread("Goodbye, World!");
t1.start(); t2.start(); }}
Sample Output
The Runnable Interface
Problems of writing a thread which extends another class, e.g. the Frame class Since Java doesn’t allow multiple inheritance
Can implement the Runnable interface insteadpublic class MyFrame extends Frame
implements Runnable {
public MyFrame() {…}
public void run() {…}
}
Running A Thread – II
Follow the stepsConstruct a Runnable objectCreate a thread using the Runnable
objectInvoke the start method of the
thread
MyFrame frame = new MyFrame();
Thread myThread = new Thread(frame);
myThread.start();
start
interrupt