SlideShare a Scribd company logo
1 of 40
Chapter 18 Applets and Multimedia




     Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                          rights reserved.
                                                                                                    1
Motivations
When browsing the Web, you frequently see the graphical user
interface and animation developed using Java. These programs
are called Java applets. Suppose you want to develop a Java
applet for the Sudoku game. How do you write this program?




                                                                                                      Sudoku

           Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                rights reserved.
                                                                                                               2
Objectives
   To convert GUI applications into applets (§18.2).
   To embed applets in Web pages (§18.3).
   To run applets from Web browsers and from the appletviewer
    command (§§18.3.1–18.3.2).
   To understand the applet security sandbox model (§18.4).
   To write a Java program that can run both as an application and as
    an applet (§18.5).
   To override the applet life-cycle methods init, start, stop, and
    destroy (§18.6).
   To pass string values to applets from HTML (§18.7).
   To develop an animation for a bouncing ball (§18.8).
   To develop an applet for the tic-tac-toe game (§18.9).
   To locate resources (images and audio) using the URL class
    (§18.10).
   To play audio in any Java program (§18.11).
              Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                                                                           3
                                              rights reserved.
Developing Applets
import javax.swing.*;                                                import javax.swing.*;
                                                                                                                  JApplet
public class DisplayLabel extends JFrame {                           public class DisplayLabel extends JFrame {
  public DisplayLabel() {                                              public DisplayLabel() {
    add(new JLabel("Great!", JLabel.CENTER));                            add(new JLabel("Great!", JLabel.CENTER));
  }                                                                    }

    public static void main(String[] args) {                             public static void main(String[] args) {
      JFrame frame = new DisplayLabel();                                   JFrame frame = new DisplayLabel();
      frame.setTitle("DisplayLabel");                                      frame.setTitle("DisplayLabel");
      frame.setSize(200, 100);                                             frame.setSize(200, 100);
      frame.setLocationRelativeTo(null);                                   frame.setLocationRelativeTo(null);
      frame.setDefaultCloseOperation(                                      frame.setDefaultCloseOperation(
        JFrame.EXIT_ON_CLOSE);                                               JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);                                              frame.setVisible(true);
    }                                                                    }
}                                                                    }




                   Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                        rights reserved.
                                                                                                                     4
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>

     Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                          rights reserved.
                                                                                                    5
First Simple Applet
<html>
<head>
<title>Java Applet Demo</title>
</head>
<body>
<applet
  code = "DisplayLabel.class"
  width = 350
  height = 200>
</applet>
</body>
</html>


                          DisplayLabel                                           Run Applet Viewer
         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        6
Applications vs. Applets
   Similarities
    – Since JFrame and JApplet both are subclasses of the Container
      class, all the user interface components, layout managers, and
      event-handling features are the same for both classes.
   Differences
    – Applications are invoked from the static main method by the
      Java interpreter, and applets are run by the Web browser. The
      Web browser creates an instance of the applet using the applet’s
      no-arg constructor and controls and executes the applet through
      the init, start, stop, and destroy methods.
    – Applets have security restrictions
    – Web browser creates graphical environment for applets, GUI
      applications are placed in a frame.
             Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                  rights reserved.
                                                                                                            7
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 browser’s computer.
   Applets are not allowed to establish connections
    between the user’s computer and another
    computer except with the server where
    the applets are stored.


         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        8
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.


         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        9
Enabling Applets to Run as
                         Applications
import javax.swing.*;
public class DisplayLabel extends JApplet {
 public DisplayLabel() {
   add(new JLabel("Great!", JLabel.CENTER));
 }

    public static void main(String[] args) {
      // Create a frame
      JFrame frame = new JFrame("Applet is in the frame");
      // Create an instance of the applet
      DisplayLabel applet = new DisplayLabel();
      // Add the applet to the frame
      frame.add(applet);
      // Display the frame
      frame.setSize(300, 100);
      frame.setLocationRelativeTo(null); // Center the frame
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
    }
}

                   Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                        rights reserved.
                                                                                                                  10
The Applet Class
When the applet is loaded, the Web browser creates
an instance of the applet by invoking the applet’s
no-arg constructor. The browser uses the init, start,
stop, and destroy methods to control the applet. By
default, these methods do nothing. To perform
specific functions, they need to be modified in the
user's applet so that the browser can call your code
properly.


         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        11
Browser Calling Applet Methods
           Browser creates             Browser                    Browser                        Browser
           the applet                  invokes init()             invokes start()                invokes start()
  Loaded                     Created                    Initialized                    Started                      Stopped

                                                                                                 Browser                      Browser invokes
                                                                                                 invokes stop()               destroyed()

JVM loads the                                                                                                       Destroyed
applet class




                     Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                          rights reserved.
                                                                                                                                     12
The init() Method
Invoked when the applet is first loaded and again
if the applet is reloaded.

A subclass of Applet should override this method if
the subclass has an initialization to perform. The
functions usually implemented in this method
include creating new threads, loading images,
setting up user-interface components, and getting
string parameter values from the <applet> tag in the
HTML page.
         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        13
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).

A subclass of Applet overrides this method if it has
any operation that needs to be performed whenever
the Web page containing the applet is visited. An
applet with animation, for example, might use the
start method to resume animation.


          Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                               rights reserved.
                                                                                                         14
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.

A subclass of Applet overrides this method if it has any
operation that needs to be performed each time the Web
page containing the applet is no longer visible. When the
user leaves the page, any threads the applet has started but
not completed will continue to run. You should override
the stop method to suspend the running threads so that the
applet does not take up system resources when it is
inactive.

           Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                rights reserved.
                                                                                                          15
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.

A subclass of Applet overrides this method if it has
any operation that needs to be performed before it
is destroyed. Usually, you won't need to override
this method unless you wish to release specific
resources, such as threads that the applet created.

         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        16
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.

         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        17
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>

    Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                         rights reserved.
                                                                                                   18
Example: 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
         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        19
Example: Running a Program as an
  Applet and as an Application

   Objective: Modify MessageApplet to enable it
    to run both as an applet and as an application.


                      DisplayMessageApp

    Run as Application                                    Run as Applet


         Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                              rights reserved.
                                                                                                        20
Case Study: Bouncing Ball

Objective: Write an
applet that displays a ball
bouncing in a panel. Use
two buttons to suspend
and resume the
movement and use a
scroll bar to control the
bouncing speed.




           Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                rights reserved.
                                                                                                          21
Case Study: Bouncing Ball, cont.

           JPanel                                                JPanel                                             JApplet
          -char token                                          -char                                               -char token
                                  1       1                    token                         1      1
               Ball
            +getToken                                         BallControl                                       +getToken
                                                                                                              BounceBallApp
            +setToken                                         +getToken                                          +setToken
-x: int     +paintCom                           -ball: Ball   +setToken                                          +paintComp
                                                                                                          +BounceBallApp()
-y: int     ponet                               -jsbDelay: JScrollBar
                                                              +paintCo                                           onet
                                                                                                          +main(args: String[]): void
-dx: int +mouseCli                              -jbtResume: JButton
                                                              mponet                                             +mouseClic
-dy: int cked                                   -jbtSuspend: JButton
                                                              +mouseCli                                          ked
-radius: int                                                  cked
-delay: int                                     +BallControl()
-timer: Timer

+Ball()
+suspend(): void
+resume(): void
+setDelay(delay: int): void




     Ball                BallControl                            BounceBallApp                                             Run
                    Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                         rights reserved.
                                                                                                                                  22
Exercise for extending to multiple balls
             JPanel                                                  JPanel                                             JApplet
            -char token                                            -char                                               -char token
                                      1        1                   token                         1     1
           BallPanel
           +getToken                                              BallControl                                       +getToken
                                                                                                                  BounceBallApp
            +setToken                                              +getToken                                        +setToken
            +paintCom
-list: ArrayList // list of balls                                  +setToken
                                                    -ballPanel: BallPanel                                           +paintComp
                                                                                                             +BounceBallApp()
-radius: intponet                                                  +paintCo
                                                    -jsbDelay: JScrollBar                                           onet
                                                                                                             +main(args: String[]): void
-delay: int +mouseCli                                              mponet
                                                    -jbtResume: JButton                                             +mouseClic
            cked
-timer: Timer                                                      +mouseCli
                                                    -jbtSuspend: JButton                                            ked
                                                    -jbtAdd: JButton
                                                                   cked
+BallPanel()                                        -jbtSubtract: JButton
+suspend(): void
+resume(): void                                     +BallControl()
+add(): void
+subtract(): void
+setDelay(delay: int): void
+paintComponent(g: Graphics):                SingleBall
 void
                                          +x: int
                                          +y: int
                                          +dx: int
                                          +dy: int
                                          +color: Color
                                          +SingleBall()

                                                                                                           Run Exercise18_19
                        Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                             rights reserved.
                                                                                                                                     23
Case Study: TicTacToe




                   JPanel

            -char token
                  Cell
           +getToken
           +setToken
-token: char
           +paintComponet                         Token used in the cell (default: ' ').
           +mouseClicked
+getToken():char                                  Returns the token in the cell.
+setToken(token: char): void                      Sets a new token in the cell.
#paintComponent(g: Graphics): void                Paints the token in the cell.
+mouseClicked(e: MouseEvent): void                Handles a mouse click on the cell.

     Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                          rights reserved.
                                                                                                    24
Case Study: TicTacToe, cont.
   Cell                     JApplet
   9
-char token              -char token
        1
+getToken                +getToken
                         TicTacToe
+setToken                +setToken
+paintComp    -whoseTurn: char
                         +paintComp                         Indicates which player has the turn, initially 'X'.
onet                     onet
+mouseClic    -cell: Cell[][]
                         +mouseClic                         A 3 by 3, two dimensional array for cells.
ked           -jlblStatus: JLabel
                         ked                                A label to display game status.

              +TicTacToe()                                  Constructs the TicTacToe user interface.
              +isFull(): boolean                            Returns true if all cells are filled.
              +isWon(token: char): boolean                  Returns true if a player with the specified token has won.




        TicTacToe                   Run as Application                                       Run as Applet
                   Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                        rights reserved.
                                                                                                                  25
Locating Resource from Applets
Due to security restrictions, applets cannot access
local files. How can an applet load resource files for
image and audio?




          Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                               rights reserved.
                                                                                                         26
Creating ImageIcon Using Absolute File Names
Example:

  ImageIcon imageIcon = new
     ImageIcon("c:bookimageus.gif");
  jlbl.setIcon(imageIcon);

This approach suffers a problem. The file location is
fixed since it uses the absolute file path on Window.
Thus, the program cannot run on other platforms and
cannot run as applet.

           Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                rights reserved.
                                                                                                          27
Creating ImageIcon Using Relative File Names
Assume that image/us.gif is under the class directory,
you can circumvent this problem by using a relative
path as follows:

   ImageIcon imageIcon = new ImageIcon("image/us.gif");
   jlbl.setIcon(imageIcon);


This works fine with Java applications on all platforms, but
does not work with Java applets because applets cannot load
local files. To make it to work with both applications and
applets, you need to locate the file using the URL class.

           Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                rights reserved.
                                                                                                          28
Locating Resource Using the URL Class
The java.net.URL class can be used to identify files (image, audio,
text, etc.) on the Internet. In general, a URL (Uniform Resource
Locator) is a pointer to a “resource” on the World Wide Web on a
local machine or a remote host. A resource can be something as
simple as a file or a directory.

Directory
                                      .
                                      .
            An applet or              .
            application               Class metaObject = this.getClass();
                                      URL url = metaObject.getResource(resourceFilename);
                                      .
                                      .
            A resource file           .




                      Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                           rights reserved.
                                                                                                                     29
Creating a URL from a Class Reference
A URL for a file can also be accessed from a class in
a way that is independent of the location of the file,
as long as the resource file is located in the class
directory.
 C:book
                                    .
                                    .
           An applet or             .
           application              Class metaObject = this.getClass();
                                    URL url = metaObject.getResource("image/us.gif");
                                    .
                                    .
           image                    .


                     us.gif




                   Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                        rights reserved.
                                                                                                                  30
Displaying Image
Write a program that displays an image from
/image/us.gif in the class directory on a panel.




              DisplayImageWithURL                                                           Run
       Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                            rights reserved.
                                                                                                      31
Creating AudioClip from an Audio File
To play an audio file in an applet, first create an audio clip object for
the audio file. The audio clip is created once and can be played
repeatedly without reloading the file. To create an audio clip, use the
static method newAudioClip() in the java.applet.Applet class:

   AudioClip audioClip = Applet.newAudioClip(url);

Audio was originally used with Java applets. For this reason, the
AudioClip interface is in the java.applet package.

The following statements, for example, create an AudioClip for the
beep.au audio file in the same directory with the class you are running.

   Class class = this.getClass();
   URL url = class.getResource("beep.au");
   AudioClip audioClip = Applet.newAudioClip(url);

              Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                   rights reserved.
                                                                                                             32
Playing Audio
      «interface»
 java.applet.AudioClip
+play()                                  Starts playing this audio clip. Each time this method
                                           is called, the clip is restarted from the beginning.
+loop()                                  Plays the clip repeatedly.
+stop()                                  Stops playing the clip.



 To manipulate a sound for an audio clip, use the play(), loop(), and
 stop() methods in java.applet.AudioClip.


                DisplayImagePlayAudio                                                            Run
            Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                 rights reserved.
                                                                                                           33
Multimedia Animation




ImageAudioAnimation                                    Run as an Application
    Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                         rights reserved.
                                                                                                   34
Companion
Website               Packaging and Deploying
                           Java Projects
What is JAR?

Java archive file can be used to group all the project files in a
compressed file for deployment.

The Java archive file format (JAR) is based on the popular ZIP file
format.

This single file can be deployed on an end-user’s machine as an
application. It also can be downloaded to a browser in a single HTTP
transaction, rather than opening a new connection for each piece. This
greatly simplifies application deployment and improves the speed
with which an applet can be loaded onto a web page and begin
functioning.
             Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                  rights reserved.
                                                                                                            35
Companion
Website                             Creating JAR
You can use the JDK jar command to create an
archive file. The following command creates an
archive file named TicTacToe.jar for classes
TicTacToe.class and TicTacToe$Cell.class.

        jar -cf TicTacToe.jar TicTacToe.class TicTacToe$Cell.class


The -c option is for creating a new archive file, and
the -f option specifies the archive file’s name.

             Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                  rights reserved.
                                                                                                            36
Companion
Website
            Viewing the Contents of a JAR File
You can view the contents of a .jar file using
 WinZip.




             Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                  rights reserved.
                                                                                                            37
Companion
Website                              Manifest File
A manifest file was created with the path name meta-inf. The
manifest is a special file that contains information about the files
packaged in a JAR file. For instance, the manifest file in
TicTacToe.jar contains the following information:
    Manifest-Version: 1.0

    Name: TicTacToe.class
    Java-Bean: True

    Name: TioTacToe$Cell.class
    Java-Bean: True

You can modify the information contained in the manifest file to
enable the JAR file to be used for a variety of purposes. For instance,
you can add information to specify a main class to run an application
using the .jar file.

               Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                    rights reserved.
                                                                                                              38
Companion
Website     Running Archived Projects Standalone
The manifest file must have an entry to contain the main class. For
example, to run TicTacToe, you need to insert the following two lines
in the manifest file:

    Main-Class: TicTacToe
    Sealed: true

Run the .jar file using the java command from the directory that
contains TicTacToe.jar,
    java -jar TicTacToe.jar

TIP: You can write an installation procedure that creates the
necessary directories and subdirectories on the end-user’s computer.
The installation can also create an icon that the end-user can double-
click on to start the program. For information on creating Windows
desktop icon, please see www.prenhall.com/liang/intro5e.html.
                Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                     rights reserved.
                                                                                                               39
Companion
Website     Running Archived Projects As Applet
To run TicTacToe as an applet, modify the <APPLET> tag
in the HTML file to include an ARCHIVE attribute. The
ARCHIVE attribute specifies the archive file in which the
applet is contained. For example, the HTML file for
running TicTacToe can be modified as shown below:

        <APPLET
         CODE = "TicTacToe.class"
         ARCHIVE = "TicTacToe.jar"
         WIDTH = 400
         HEIGHT = 300
         HSPACE = 0
         VSPACE = 0
         ALIGN = Middle
        >
        </APPLET>
             Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All
                                                  rights reserved.
                                                                                                            40

More Related Content

What's hot

JavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJeff Hoffman
 
Applet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java AppletsApplet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java Appletsamitksaha
 
Applet life cycle
Applet life cycleApplet life cycle
Applet life cyclemyrajendra
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemTim Ellison
 
Profiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesRitu Arora
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoMohd Safian
 

What's hot (15)

JavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX Updates
 
Applet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java AppletsApplet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java Applets
 
java applets
java appletsjava applets
java applets
 
Applet life cycle
Applet life cycleApplet life cycle
Applet life cycle
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
As2 vs as3
As2 vs as3As2 vs as3
As2 vs as3
 
Cocoa fundamentalswert
Cocoa fundamentalswertCocoa fundamentalswert
Cocoa fundamentalswert
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
 
perl-java
perl-javaperl-java
perl-java
 
Profiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming Techniques
 
Java Applet
Java AppletJava Applet
Java Applet
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 
Swing
SwingSwing
Swing
 
04b swing tutorial
04b swing tutorial04b swing tutorial
04b swing tutorial
 
Ch2
Ch2Ch2
Ch2
 

Viewers also liked

bai giang java co ban - java cơ bản - bai 1
bai giang java co ban - java cơ bản - bai 1bai giang java co ban - java cơ bản - bai 1
bai giang java co ban - java cơ bản - bai 1ifis
 
kg0000931 Chapter 1 introduction to computers, programs part ia
kg0000931 Chapter 1 introduction to computers, programs part ia kg0000931 Chapter 1 introduction to computers, programs part ia
kg0000931 Chapter 1 introduction to computers, programs part ia kg0000931
 
Java cơ bản java co ban
Java cơ bản java co ban Java cơ bản java co ban
Java cơ bản java co ban ifis
 
9781285852744 ppt ch02
9781285852744 ppt ch029781285852744 ppt ch02
9781285852744 ppt ch02Terry Yoast
 
Introduction to Java Programming Language
Introduction to Java Programming LanguageIntroduction to Java Programming Language
Introduction to Java Programming Languagejaimefrozr
 
Exception handling
Exception handlingException handling
Exception handlingRaja Sekhar
 
String handling session 5
String handling session 5String handling session 5
String handling session 5Raja Sekhar
 

Viewers also liked (13)

JavaYDL5
JavaYDL5JavaYDL5
JavaYDL5
 
bai giang java co ban - java cơ bản - bai 1
bai giang java co ban - java cơ bản - bai 1bai giang java co ban - java cơ bản - bai 1
bai giang java co ban - java cơ bản - bai 1
 
kg0000931 Chapter 1 introduction to computers, programs part ia
kg0000931 Chapter 1 introduction to computers, programs part ia kg0000931 Chapter 1 introduction to computers, programs part ia
kg0000931 Chapter 1 introduction to computers, programs part ia
 
Java cơ bản java co ban
Java cơ bản java co ban Java cơ bản java co ban
Java cơ bản java co ban
 
01slide
01slide01slide
01slide
 
9781285852744 ppt ch02
9781285852744 ppt ch029781285852744 ppt ch02
9781285852744 ppt ch02
 
05slide
05slide05slide
05slide
 
07slide
07slide07slide
07slide
 
10slide
10slide10slide
10slide
 
13slide graphics
13slide graphics13slide graphics
13slide graphics
 
Introduction to Java Programming Language
Introduction to Java Programming LanguageIntroduction to Java Programming Language
Introduction to Java Programming Language
 
Exception handling
Exception handlingException handling
Exception handling
 
String handling session 5
String handling session 5String handling session 5
String handling session 5
 

Similar to Develop Java Applets and Add Multimedia

Applet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-insApplet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-insSerge Rehem
 
Java 9 features
Java 9 featuresJava 9 features
Java 9 featuresshrinath97
 
Chapter_7_-_EV_-_OOP[1].pdf
Chapter_7_-_EV_-_OOP[1].pdfChapter_7_-_EV_-_OOP[1].pdf
Chapter_7_-_EV_-_OOP[1].pdfzekishamanch
 
Java/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBCJava/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBCFAKHRUN NISHA
 
Java basics notes
Java basics notesJava basics notes
Java basics notesNexus
 
Chapter 2.1
Chapter 2.1Chapter 2.1
Chapter 2.1sotlsoc
 
Bci for Beginners
Bci for BeginnersBci for Beginners
Bci for BeginnersIainLewis
 
JAVA INTRODUCTION
JAVA INTRODUCTIONJAVA INTRODUCTION
JAVA INTRODUCTIONProf Ansari
 
JAVA INTRODUCTION
JAVA INTRODUCTIONJAVA INTRODUCTION
JAVA INTRODUCTIONProf Ansari
 
Chapter1pp
Chapter1ppChapter1pp
Chapter1ppJ. C.
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Mr. Akaash
 

Similar to Develop Java Applets and Add Multimedia (20)

Applet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-insApplet Returns: The new generation of Java Plug-ins
Applet Returns: The new generation of Java Plug-ins
 
Java applets
Java appletsJava applets
Java applets
 
APPLET.pptx
APPLET.pptxAPPLET.pptx
APPLET.pptx
 
Java 9 features
Java 9 featuresJava 9 features
Java 9 features
 
Applet in java new
Applet in java newApplet in java new
Applet in java new
 
Chapter_7_-_EV_-_OOP[1].pdf
Chapter_7_-_EV_-_OOP[1].pdfChapter_7_-_EV_-_OOP[1].pdf
Chapter_7_-_EV_-_OOP[1].pdf
 
Java/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBCJava/Servlet/JSP/JDBC
Java/Servlet/JSP/JDBC
 
3. applets
3. applets3. applets
3. applets
 
Java basics notes
Java basics notesJava basics notes
Java basics notes
 
Java programming basics notes for beginners(java programming tutorials)
Java programming basics notes for beginners(java programming tutorials)Java programming basics notes for beginners(java programming tutorials)
Java programming basics notes for beginners(java programming tutorials)
 
Java basics notes
Java basics notesJava basics notes
Java basics notes
 
Chapter 2.1
Chapter 2.1Chapter 2.1
Chapter 2.1
 
Bci for Beginners
Bci for BeginnersBci for Beginners
Bci for Beginners
 
Applet1 (1).pptx
Applet1 (1).pptxApplet1 (1).pptx
Applet1 (1).pptx
 
Java basics notes
Java basics notesJava basics notes
Java basics notes
 
JAVA INTRODUCTION
JAVA INTRODUCTIONJAVA INTRODUCTION
JAVA INTRODUCTION
 
JAVA INTRODUCTION
JAVA INTRODUCTIONJAVA INTRODUCTION
JAVA INTRODUCTION
 
Lecture1 oopj
Lecture1 oopjLecture1 oopj
Lecture1 oopj
 
Chapter1pp
Chapter1ppChapter1pp
Chapter1pp
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...
 

More from Terry Yoast

9781305078444 ppt ch12
9781305078444 ppt ch129781305078444 ppt ch12
9781305078444 ppt ch12Terry Yoast
 
9781305078444 ppt ch11
9781305078444 ppt ch119781305078444 ppt ch11
9781305078444 ppt ch11Terry Yoast
 
9781305078444 ppt ch10
9781305078444 ppt ch109781305078444 ppt ch10
9781305078444 ppt ch10Terry Yoast
 
9781305078444 ppt ch09
9781305078444 ppt ch099781305078444 ppt ch09
9781305078444 ppt ch09Terry Yoast
 
9781305078444 ppt ch08
9781305078444 ppt ch089781305078444 ppt ch08
9781305078444 ppt ch08Terry Yoast
 
9781305078444 ppt ch07
9781305078444 ppt ch079781305078444 ppt ch07
9781305078444 ppt ch07Terry Yoast
 
9781305078444 ppt ch06
9781305078444 ppt ch069781305078444 ppt ch06
9781305078444 ppt ch06Terry Yoast
 
9781305078444 ppt ch05
9781305078444 ppt ch059781305078444 ppt ch05
9781305078444 ppt ch05Terry Yoast
 
9781305078444 ppt ch04
9781305078444 ppt ch049781305078444 ppt ch04
9781305078444 ppt ch04Terry Yoast
 
9781305078444 ppt ch03
9781305078444 ppt ch039781305078444 ppt ch03
9781305078444 ppt ch03Terry Yoast
 
9781305078444 ppt ch02
9781305078444 ppt ch029781305078444 ppt ch02
9781305078444 ppt ch02Terry Yoast
 
9781305078444 ppt ch01
9781305078444 ppt ch019781305078444 ppt ch01
9781305078444 ppt ch01Terry Yoast
 
9781337102087 ppt ch13
9781337102087 ppt ch139781337102087 ppt ch13
9781337102087 ppt ch13Terry Yoast
 
9781337102087 ppt ch18
9781337102087 ppt ch189781337102087 ppt ch18
9781337102087 ppt ch18Terry Yoast
 
9781337102087 ppt ch17
9781337102087 ppt ch179781337102087 ppt ch17
9781337102087 ppt ch17Terry Yoast
 
9781337102087 ppt ch16
9781337102087 ppt ch169781337102087 ppt ch16
9781337102087 ppt ch16Terry Yoast
 
9781337102087 ppt ch15
9781337102087 ppt ch159781337102087 ppt ch15
9781337102087 ppt ch15Terry Yoast
 
9781337102087 ppt ch14
9781337102087 ppt ch149781337102087 ppt ch14
9781337102087 ppt ch14Terry Yoast
 
9781337102087 ppt ch12
9781337102087 ppt ch129781337102087 ppt ch12
9781337102087 ppt ch12Terry Yoast
 
9781337102087 ppt ch11
9781337102087 ppt ch119781337102087 ppt ch11
9781337102087 ppt ch11Terry Yoast
 

More from Terry Yoast (20)

9781305078444 ppt ch12
9781305078444 ppt ch129781305078444 ppt ch12
9781305078444 ppt ch12
 
9781305078444 ppt ch11
9781305078444 ppt ch119781305078444 ppt ch11
9781305078444 ppt ch11
 
9781305078444 ppt ch10
9781305078444 ppt ch109781305078444 ppt ch10
9781305078444 ppt ch10
 
9781305078444 ppt ch09
9781305078444 ppt ch099781305078444 ppt ch09
9781305078444 ppt ch09
 
9781305078444 ppt ch08
9781305078444 ppt ch089781305078444 ppt ch08
9781305078444 ppt ch08
 
9781305078444 ppt ch07
9781305078444 ppt ch079781305078444 ppt ch07
9781305078444 ppt ch07
 
9781305078444 ppt ch06
9781305078444 ppt ch069781305078444 ppt ch06
9781305078444 ppt ch06
 
9781305078444 ppt ch05
9781305078444 ppt ch059781305078444 ppt ch05
9781305078444 ppt ch05
 
9781305078444 ppt ch04
9781305078444 ppt ch049781305078444 ppt ch04
9781305078444 ppt ch04
 
9781305078444 ppt ch03
9781305078444 ppt ch039781305078444 ppt ch03
9781305078444 ppt ch03
 
9781305078444 ppt ch02
9781305078444 ppt ch029781305078444 ppt ch02
9781305078444 ppt ch02
 
9781305078444 ppt ch01
9781305078444 ppt ch019781305078444 ppt ch01
9781305078444 ppt ch01
 
9781337102087 ppt ch13
9781337102087 ppt ch139781337102087 ppt ch13
9781337102087 ppt ch13
 
9781337102087 ppt ch18
9781337102087 ppt ch189781337102087 ppt ch18
9781337102087 ppt ch18
 
9781337102087 ppt ch17
9781337102087 ppt ch179781337102087 ppt ch17
9781337102087 ppt ch17
 
9781337102087 ppt ch16
9781337102087 ppt ch169781337102087 ppt ch16
9781337102087 ppt ch16
 
9781337102087 ppt ch15
9781337102087 ppt ch159781337102087 ppt ch15
9781337102087 ppt ch15
 
9781337102087 ppt ch14
9781337102087 ppt ch149781337102087 ppt ch14
9781337102087 ppt ch14
 
9781337102087 ppt ch12
9781337102087 ppt ch129781337102087 ppt ch12
9781337102087 ppt ch12
 
9781337102087 ppt ch11
9781337102087 ppt ch119781337102087 ppt ch11
9781337102087 ppt ch11
 

Recently uploaded

Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 

Recently uploaded (20)

Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 

Develop Java Applets and Add Multimedia

  • 1. Chapter 18 Applets and Multimedia Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1
  • 2. Motivations When browsing the Web, you frequently see the graphical user interface and animation developed using Java. These programs are called Java applets. Suppose you want to develop a Java applet for the Sudoku game. How do you write this program? Sudoku Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 2
  • 3. Objectives  To convert GUI applications into applets (§18.2).  To embed applets in Web pages (§18.3).  To run applets from Web browsers and from the appletviewer command (§§18.3.1–18.3.2).  To understand the applet security sandbox model (§18.4).  To write a Java program that can run both as an application and as an applet (§18.5).  To override the applet life-cycle methods init, start, stop, and destroy (§18.6).  To pass string values to applets from HTML (§18.7).  To develop an animation for a bouncing ball (§18.8).  To develop an applet for the tic-tac-toe game (§18.9).  To locate resources (images and audio) using the URL class (§18.10).  To play audio in any Java program (§18.11). Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All 3 rights reserved.
  • 4. Developing Applets import javax.swing.*; import javax.swing.*; JApplet public class DisplayLabel extends JFrame { public class DisplayLabel extends JFrame { public DisplayLabel() { public DisplayLabel() { add(new JLabel("Great!", JLabel.CENTER)); add(new JLabel("Great!", JLabel.CENTER)); } } public static void main(String[] args) { public static void main(String[] args) { JFrame frame = new DisplayLabel(); JFrame frame = new DisplayLabel(); frame.setTitle("DisplayLabel"); frame.setTitle("DisplayLabel"); frame.setSize(200, 100); frame.setSize(200, 100); frame.setLocationRelativeTo(null); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation( frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.setVisible(true); } } } } Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 4
  • 5. 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> Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 5
  • 6. First Simple Applet <html> <head> <title>Java Applet Demo</title> </head> <body> <applet code = "DisplayLabel.class" width = 350 height = 200> </applet> </body> </html> DisplayLabel Run Applet Viewer Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 6
  • 7. Applications vs. Applets  Similarities – Since JFrame and JApplet both are subclasses of the Container class, all the user interface components, layout managers, and event-handling features are the same for both classes.  Differences – Applications are invoked from the static main method by the Java interpreter, and applets are run by the Web browser. The Web browser creates an instance of the applet using the applet’s no-arg constructor and controls and executes the applet through the init, start, stop, and destroy methods. – Applets have security restrictions – Web browser creates graphical environment for applets, GUI applications are placed in a frame. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 7
  • 8. 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 browser’s computer.  Applets are not allowed to establish connections between the user’s computer and another computer except with the server where the applets are stored. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 8
  • 9. 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. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 9
  • 10. Enabling Applets to Run as Applications import javax.swing.*; public class DisplayLabel extends JApplet { public DisplayLabel() { add(new JLabel("Great!", JLabel.CENTER)); } public static void main(String[] args) { // Create a frame JFrame frame = new JFrame("Applet is in the frame"); // Create an instance of the applet DisplayLabel applet = new DisplayLabel(); // Add the applet to the frame frame.add(applet); // Display the frame frame.setSize(300, 100); frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 10
  • 11. The Applet Class When the applet is loaded, the Web browser creates an instance of the applet by invoking the applet’s no-arg constructor. The browser uses the init, start, stop, and destroy methods to control the applet. By default, these methods do nothing. To perform specific functions, they need to be modified in the user's applet so that the browser can call your code properly. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 11
  • 12. Browser Calling Applet Methods Browser creates Browser Browser Browser the applet invokes init() invokes start() invokes start() Loaded Created Initialized Started Stopped Browser Browser invokes invokes stop() destroyed() JVM loads the Destroyed applet class Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 12
  • 13. The init() Method Invoked when the applet is first loaded and again if the applet is reloaded. A subclass of Applet should override this method if the subclass has an initialization to perform. The functions usually implemented in this method include creating new threads, loading images, setting up user-interface components, and getting string parameter values from the <applet> tag in the HTML page. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 13
  • 14. 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). A subclass of Applet overrides this method if it has any operation that needs to be performed whenever the Web page containing the applet is visited. An applet with animation, for example, might use the start method to resume animation. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 14
  • 15. 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. A subclass of Applet overrides this method if it has any operation that needs to be performed each time the Web page containing the applet is no longer visible. When the user leaves the page, any threads the applet has started but not completed will continue to run. You should override the stop method to suspend the running threads so that the applet does not take up system resources when it is inactive. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 15
  • 16. 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. A subclass of Applet overrides this method if it has any operation that needs to be performed before it is destroyed. Usually, you won't need to override this method unless you wish to release specific resources, such as threads that the applet created. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 16
  • 17. 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. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 17
  • 18. 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> Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 18
  • 19. Example: 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 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 19
  • 20. Example: Running a Program as an Applet and as an Application  Objective: Modify MessageApplet to enable it to run both as an applet and as an application. DisplayMessageApp Run as Application Run as Applet Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 20
  • 21. Case Study: Bouncing Ball Objective: Write an applet that displays a ball bouncing in a panel. Use two buttons to suspend and resume the movement and use a scroll bar to control the bouncing speed. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 21
  • 22. Case Study: Bouncing Ball, cont. JPanel JPanel JApplet -char token -char -char token 1 1 token 1 1 Ball +getToken BallControl +getToken BounceBallApp +setToken +getToken +setToken -x: int +paintCom -ball: Ball +setToken +paintComp +BounceBallApp() -y: int ponet -jsbDelay: JScrollBar +paintCo onet +main(args: String[]): void -dx: int +mouseCli -jbtResume: JButton mponet +mouseClic -dy: int cked -jbtSuspend: JButton +mouseCli ked -radius: int cked -delay: int +BallControl() -timer: Timer +Ball() +suspend(): void +resume(): void +setDelay(delay: int): void Ball BallControl BounceBallApp Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 22
  • 23. Exercise for extending to multiple balls JPanel JPanel JApplet -char token -char -char token 1 1 token 1 1 BallPanel +getToken BallControl +getToken BounceBallApp +setToken +getToken +setToken +paintCom -list: ArrayList // list of balls +setToken -ballPanel: BallPanel +paintComp +BounceBallApp() -radius: intponet +paintCo -jsbDelay: JScrollBar onet +main(args: String[]): void -delay: int +mouseCli mponet -jbtResume: JButton +mouseClic cked -timer: Timer +mouseCli -jbtSuspend: JButton ked -jbtAdd: JButton cked +BallPanel() -jbtSubtract: JButton +suspend(): void +resume(): void +BallControl() +add(): void +subtract(): void +setDelay(delay: int): void +paintComponent(g: Graphics): SingleBall void +x: int +y: int +dx: int +dy: int +color: Color +SingleBall() Run Exercise18_19 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 23
  • 24. Case Study: TicTacToe JPanel -char token Cell +getToken +setToken -token: char +paintComponet Token used in the cell (default: ' '). +mouseClicked +getToken():char Returns the token in the cell. +setToken(token: char): void Sets a new token in the cell. #paintComponent(g: Graphics): void Paints the token in the cell. +mouseClicked(e: MouseEvent): void Handles a mouse click on the cell. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 24
  • 25. Case Study: TicTacToe, cont. Cell JApplet 9 -char token -char token 1 +getToken +getToken TicTacToe +setToken +setToken +paintComp -whoseTurn: char +paintComp Indicates which player has the turn, initially 'X'. onet onet +mouseClic -cell: Cell[][] +mouseClic A 3 by 3, two dimensional array for cells. ked -jlblStatus: JLabel ked A label to display game status. +TicTacToe() Constructs the TicTacToe user interface. +isFull(): boolean Returns true if all cells are filled. +isWon(token: char): boolean Returns true if a player with the specified token has won. TicTacToe Run as Application Run as Applet Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 25
  • 26. Locating Resource from Applets Due to security restrictions, applets cannot access local files. How can an applet load resource files for image and audio? Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 26
  • 27. Creating ImageIcon Using Absolute File Names Example: ImageIcon imageIcon = new ImageIcon("c:bookimageus.gif"); jlbl.setIcon(imageIcon); This approach suffers a problem. The file location is fixed since it uses the absolute file path on Window. Thus, the program cannot run on other platforms and cannot run as applet. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 27
  • 28. Creating ImageIcon Using Relative File Names Assume that image/us.gif is under the class directory, you can circumvent this problem by using a relative path as follows: ImageIcon imageIcon = new ImageIcon("image/us.gif"); jlbl.setIcon(imageIcon); This works fine with Java applications on all platforms, but does not work with Java applets because applets cannot load local files. To make it to work with both applications and applets, you need to locate the file using the URL class. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 28
  • 29. Locating Resource Using the URL Class The java.net.URL class can be used to identify files (image, audio, text, etc.) on the Internet. In general, a URL (Uniform Resource Locator) is a pointer to a “resource” on the World Wide Web on a local machine or a remote host. A resource can be something as simple as a file or a directory. Directory . . An applet or . application Class metaObject = this.getClass(); URL url = metaObject.getResource(resourceFilename); . . A resource file . Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 29
  • 30. Creating a URL from a Class Reference A URL for a file can also be accessed from a class in a way that is independent of the location of the file, as long as the resource file is located in the class directory. C:book . . An applet or . application Class metaObject = this.getClass(); URL url = metaObject.getResource("image/us.gif"); . . image . us.gif Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 30
  • 31. Displaying Image Write a program that displays an image from /image/us.gif in the class directory on a panel. DisplayImageWithURL Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 31
  • 32. Creating AudioClip from an Audio File To play an audio file in an applet, first create an audio clip object for the audio file. The audio clip is created once and can be played repeatedly without reloading the file. To create an audio clip, use the static method newAudioClip() in the java.applet.Applet class: AudioClip audioClip = Applet.newAudioClip(url); Audio was originally used with Java applets. For this reason, the AudioClip interface is in the java.applet package. The following statements, for example, create an AudioClip for the beep.au audio file in the same directory with the class you are running. Class class = this.getClass(); URL url = class.getResource("beep.au"); AudioClip audioClip = Applet.newAudioClip(url); Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 32
  • 33. Playing Audio «interface» java.applet.AudioClip +play() Starts playing this audio clip. Each time this method is called, the clip is restarted from the beginning. +loop() Plays the clip repeatedly. +stop() Stops playing the clip. To manipulate a sound for an audio clip, use the play(), loop(), and stop() methods in java.applet.AudioClip. DisplayImagePlayAudio Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 33
  • 34. Multimedia Animation ImageAudioAnimation Run as an Application Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 34
  • 35. Companion Website Packaging and Deploying Java Projects What is JAR? Java archive file can be used to group all the project files in a compressed file for deployment. The Java archive file format (JAR) is based on the popular ZIP file format. This single file can be deployed on an end-user’s machine as an application. It also can be downloaded to a browser in a single HTTP transaction, rather than opening a new connection for each piece. This greatly simplifies application deployment and improves the speed with which an applet can be loaded onto a web page and begin functioning. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 35
  • 36. Companion Website Creating JAR You can use the JDK jar command to create an archive file. The following command creates an archive file named TicTacToe.jar for classes TicTacToe.class and TicTacToe$Cell.class. jar -cf TicTacToe.jar TicTacToe.class TicTacToe$Cell.class The -c option is for creating a new archive file, and the -f option specifies the archive file’s name. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 36
  • 37. Companion Website Viewing the Contents of a JAR File You can view the contents of a .jar file using WinZip. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 37
  • 38. Companion Website Manifest File A manifest file was created with the path name meta-inf. The manifest is a special file that contains information about the files packaged in a JAR file. For instance, the manifest file in TicTacToe.jar contains the following information: Manifest-Version: 1.0 Name: TicTacToe.class Java-Bean: True Name: TioTacToe$Cell.class Java-Bean: True You can modify the information contained in the manifest file to enable the JAR file to be used for a variety of purposes. For instance, you can add information to specify a main class to run an application using the .jar file. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 38
  • 39. Companion Website Running Archived Projects Standalone The manifest file must have an entry to contain the main class. For example, to run TicTacToe, you need to insert the following two lines in the manifest file: Main-Class: TicTacToe Sealed: true Run the .jar file using the java command from the directory that contains TicTacToe.jar, java -jar TicTacToe.jar TIP: You can write an installation procedure that creates the necessary directories and subdirectories on the end-user’s computer. The installation can also create an icon that the end-user can double- click on to start the program. For information on creating Windows desktop icon, please see www.prenhall.com/liang/intro5e.html. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 39
  • 40. Companion Website Running Archived Projects As Applet To run TicTacToe as an applet, modify the <APPLET> tag in the HTML file to include an ARCHIVE attribute. The ARCHIVE attribute specifies the archive file in which the applet is contained. For example, the HTML file for running TicTacToe can be modified as shown below: <APPLET CODE = "TicTacToe.class" ARCHIVE = "TicTacToe.jar" WIDTH = 400 HEIGHT = 300 HSPACE = 0 VSPACE = 0 ALIGN = Middle > </APPLET> Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 40