0% found this document useful (0 votes)
56 views

JAVA

The document discusses applets and advanced graphics in Java. It covers the core applet classes like JApplet and their lifecycle methods. It also discusses how to pass parameters to applets, handle events like mouse and keyboard in applets, and represent interactions using sequence and state diagrams. Additionally, it presents examples of creating applets to compute mortgages, draw scribbles, and play tic-tac-toe. The document further provides details about advanced layout managers like CardLayout and GridBagLayout as well as the option of not using any layout manager.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

JAVA

The document discusses applets and advanced graphics in Java. It covers the core applet classes like JApplet and their lifecycle methods. It also discusses how to pass parameters to applets, handle events like mouse and keyboard in applets, and represent interactions using sequence and state diagrams. Additionally, it presents examples of creating applets to compute mortgages, draw scribbles, and play tic-tac-toe. The document further provides details about advanced layout managers like CardLayout and GridBagLayout as well as the option of not using any layout manager.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 37

Chapter 12 Applets and

Advanced Graphics

The Applet Class


The <applet> HTML Tag
Passing Parameters to Applets
Conversions Between Applications and Applets
Running a Program as an Applet and as an Application
Handling the Mouse Event
Handling the Keyboard Event
Model dynamic behavior using sequence diagrams and
statecharts diagrams
Advanced Layout (CardLayout and GridBagLayout and
using No Layout Manager) (Optional)

The Applet Class


public class MyApplet extends JApplet
{
public void init()
{ ... }
public void start()
{ ... }
public void stop()
{ ... }
public void destroy()
{ ... }
//your other methods
}

Browser Calling Applet Methods

The init() Method


Invoked when the applet is first loaded and again if
the applet is reloaded.
Common functions implemented in this method
include creating threads, loading images, setting up
user-interface components, and getting parameters
from the <applet> tag in the
HTML page.

The start() Method


Invoked after the init() method is executed; also called
whenever the applet becomes active again after a period of
inactivity (for example, when the user returns to the page
containing the applet after surfing other Web pages).
Functionality might include restarting threads
(for example, to resume an animation) or
simply telling the applet to run again.

The stop() Method


The opposite of the start() method, which is
called when the user moves back to the page
containing the applet; the stop() method is
invoked when the user moves off the page.
When the user leaves the page, any threads the
applet has startedbut not completedwill
continue to run.

The destroy() Method


Invoked when the browser exits normally to
inform the applet that it is no longer needed and
that it should release any resources it has allocated.
Usually, you will not need to override this method
unless you need to release specific resources, such
as threads that the applet created.

Example 12.1 Using Applets

Objective: Compute mortgages. The applet enables


the user to enter the annual interest rate, the number
of years, and the loan amount. Click the Compute
Mortgage button, and the applet displays the
monthly payment and the total payment.

MortgageApplet
Run Applet Viewer

Writing Applets

Always extends the JApplet class, which is a


subclass of Applet for Swing components.

Override init(), start(), stop(), and


destroy() if necessary. By default, these methods
are empty.

Add your own methods and data if necessary.

Applets are always embedded in an


HTML page.

The <applet> HTML Tag


<applet
code=classfilename.class
width=applet_viewing_width_in_pixels
height=applet_viewing_height_in_pixels
[archive=archivefile]
[codebase=applet_url]
[vspace=vertical_margin]
[hspace=horizontal_margin]
[align=applet_alignment]
[alt=alternative_text]
>
<param name=param_name1
value=param_value1>
</applet>

Running Applets in Java Plug-In


(optional)
Why to Use Java Plug-In?
Java Plug-in enables Web browsers to
run Java applets consistently on all the
platforms.

How to Use Java Plug-In


(optional)
Convert

the HTML file to a new HTML file


using the HTMLConverter Utility. The new
HTML file contains the tags for invoking the
Java Plug-In.

If the Plug-In is not installed, the new


HTML file automatically downloads it from
the Sun JavaSoft Web site.

Passing Parameters to Applets


<applet
code = "DisplayMessage.class"
width = 200
height = 50>
<param name=MESSAGE value="Welcome
to Java">
<param name=X value=20>
<param name=Y value=20>
alt="You must have a Java-enabled
browser to view the applet"
</applet>

Example 12.2 Passing


Parameters to Java Applets

Objective: Display a message at a specified


location. The message and the location (x, y) are
obtained from the HTML source.

DisplayMessage
Run Applet Viewer

Applications vs. Applets

Similarities
SincetheybotharesubclassesoftheContainer
class,alltheuserinterfacecomponents,
layoutmanagers,andeventhandlingfeatures
arethesameforbothclasses.

Differences
ApplicationsareinvokedbytheJava
interpreter,andappletsareinvokedbytheWeb
browser.
Appletshavesecurityrestrictions
Webbrowsercreatesgraphicalenvironmentfor
applets,GUIapplicationsareplacedina
frame.

Security Restrictions on Applets

Applets are not allowed to read from, or write to,


the file system of the computer viewing the
applets.

Applets are not allowed to run any programs on


the browsers computer.

Applets are not allowed to establish connections


between the users computer and another computer
except with the server where
the applets are stored.

Conversions Between
Applications and Applets

Conversions between applications and applets are


simple and easy.

You can always convert an applet into an


application.

You can convert an application to an


applet as long as security restrictions are
not violated.

Example 12.3
Running a Program as an Applet
and as an Application

Objective: Modify MortgageApplet to enable it


to run both as an applet and as an application.
DisplayMessageApp
Run as Application

Run as Applet

Handling Mouse Events

Java provides two listener interfaces,


MouseListener and MouseMotionListener , to
handle mouse events.

The MouseListener listens for actions such as when


the mouse is pressed, released, entered, exited, or
clicked.

The MouseMotionListener listens for


actions such as dragging or moving the
mouse.

Example 12.4
Moving Message Using Mouse

Objective: Create aprogramtodisplayamessagein

apanel.Youcanusethemousetomovethe
message.Themessagemovesasthemouse
dragsandisalwaysdisplayedatthemouse
point.

MoveMessageDemo
Run as Application

Run as Applet

Example 12.5
Handling Complex Mouse Events

Objective: Create a program for drawing using a


mouse. Draw by dragging with the left mouse
button pressed; erase by dragging with the right
button pressed.
ScribbleDemo
Run as Application
Run as Applet

Handling Keyboard Events


To process a keyboard event, use the following
handlers in the KeyListener interface:

keyPressed(KeyEvent e)

Called when a key is pressed.

keyReleased(KeyEvent e)

Called when a key is released.

keyTyped(KeyEvent e)

Called when a key is pressed and then


released.

The KeyEvent Class

Methods:
getKeyChar() method
getKeyCode() method

Keys:
Home
EndVK_End
Page Up
Page Down
etc...

VK_HOME
VK_PGUP
VK_PGDN

Example 12.6
Keyboard Events Demo

Objective: Display a user-input character. The user


can also move the character up, down, left, and
right using the arrow keys.
KeyboardEventDemo
Run as Application
Run as Applet

Sequence diagrams
Sequencediagramsdescribeinteractions
amongobjectsbydepictingthetime
orderingofmethodinvocations.

Class role

anObject:

TheClass
aMethod()

anotherObject:
Method Invocation

Activation

Method Invocation

anotherMethod()

TheOtherClass

Sequence diagrams, cont.


:

ButtonDemo

messagePanel:
setXCoordinate

repaint

MessagePanel

Statechart diagrams
Statechartdiagramsdescribe
flowofcontroloftheobject.
Indicate
Initial State
State1
Transition

State2

Statechart diagrams, cont.


init()
Initialized
start()

stop()
stop()

Started

Stopped
start()
destroy()
Destroyed

Example 12.7
The TicTacToe Game
JApplet

JPanel

-char token

-char token

+getToken
TicTacToe
+setToken
+paintComponet
-whoseTurn: char
+mouseClicked
-cell Cell[][] = new Cell[3][3]
-JLabel jlblStatus: JLabel
+init(): void
+isFull(): boolean
+isWon(): boolean

TicTacToe

MouseListener

+getToken
+setToken
+paintComponet
-token: char
+mouseClicked

-char token

Cell

+getToken
+setToken
+paintComponet
+mouseClicked

+getToken():char
+setToken(token: char): void
+paintComponet(g: Graphics): void
+mouseClicked(e: MouseEvent): void

Run as Application

Run as Applet

Advanced Layout
(Optional from here on)

CardLayout
GridBagLayout

Using

No Layout Manager

EventAdapters
(Optional)

EventAdapters
(Optional)
Standard

adapters
Anonymous adapters

CardLayout

(Optional from here on)

The CardLayout manager arranges components


in a queue of cards. You can only see one card at
a time. To construct a CardLayout, simply use
the constructor CardLayout().

To add a component in the CardLayout container,


use the following method:
void add(Component com,
String name)

CardLayout View Components

void first(container)

void last(container)

void next(container)

void previous(container)

void show(Container, String name)

Example 12.10
Testing CardLayout Manager

Objective: Create two panels in a frame. The first


panel holds named components. The second panel
uses buttons and a choice box to control which
component is shown.
ShowCardLayout
Run

GridBagLayout
The GridBagLayout manager is the most flexible and
the most complex. It is similar to the GridLayout
manager in the sense that both layout managers arrange
components in a grid. The components can vary in size,
however, and can be added in any order in
GridBagLayout.

Example 12.11: Using GridBagLayout Manager


ShowGridBagLayout

Run

Using No Layout Manager


You can place components in a container without
using any layout manager. In this case, the
component must be placed using the components
instance method setBounds().

Example 12.12: Using No Layout Manager


ShowNoLayout

Run

You might also like