Home | Résumé | Courses | Contact | Useful Links | Favorite Links | USC - Homepage


Computer Science 1 - (CPTR151) - Lectures  


 Return to Courses | Course Content  



Computer Science 1 - (CPTR151)

by David Siguelnitzky, MIS; MTE

Lecture 3 - Version 1.2.1

Introduction to Java Applets


Lecture Outline

    3.1 Introduction
    3.2 Sample Applets from the Java 2 Software Development Kit
    3.3 Simple Java Applet: Drawing a String
    3.4 Drawing Strings and Lines
    3.5 Adding Floating-Point Numbers
    3.6 Java Applet Internet and World Wide Web Resources


3.1 Introduction
    • Applet
          – Program that runs in
            • appletviewer (test utility for applets)
            • Web browser (IE, Communicator)
          – Executes when HTML (Hypertext Markup Language) document containing applet is opened and downloaded
          – Applications run in command windows
    • Notes
            – Mimic several features of Chapter 2 to reinforce them
            – Focus on fundamental programming concepts first
                • Explanations will come later

3.2 Sample Applets from the Java 2 Software Development Kit

    • Sample Applets
        – Provided in Java 2 Software Development Kit (J2SDK)
        – Source code included (.java files)
            • Study and mimic source code to learn new features
            • All programmers begin by mimicking existing programs
        – Located in demo directory of J2SDK install
        – Can download demos and J2SDK from here

    • Running applets
       – In command prompt, change to demo subdirectory of applet
              cd c:\j2sdk1.4.1\demo\applets
              cd appletDirectoryName
       – There will be an HTML file used to execute applet
       – Type appletviewer example1.html
            • appletviewer loads the html file specified as its command-line argument
            • From the HTML file, determines which applet to load (more section 3.3)
      – Applet will run, Reload and Q

 

                                   
Sample execution of applet TicTacToe.
 


Sample execution of applet DrawTest.

3.3 Simple Java Applet: Drawing a String
    •Now, create applets of our own
            – Take a while before We can write applets like in the demos
            – Cover many of same techniques
    • Upcoming program
            – Create an applet to display
               "Welcome to Java Programming!"
            – Show applet and HTML file, then discuss them line by line

1 // Fig. 3.6: WelcomeApplet.java
2 // A first applet in Java.
3
4 // Java packages
5 import java.awt.Graphics; // import class Graphics
6 import javax.swing.JApplet; // import class JApplet
7
8 public class WelcomeApplet extends JApplet {
9
10     // draw text on applet’s background
11     public void paint( Graphics g )
12     {
13             // call superclass version of method paint
14             super.paint( g );
15
16             // draw a String at x-coordinate 25 and y-coordinate 25
17             g.drawString( "Welcome to Java Programming!", 25, 25 );
18
19     } // end method paint
20
21 } // end class WelcomeApplet

1 // Fig. 3.6: WelcomeApplet.java
2 // A first applet in Java.


    – Comments
            • Name of source code and description of applet

5 import java.awt.Graphics; // import class Graphics
6 import javax.swing.JApplet; // import class JApplet


    – Import predefined classes grouped into packages
            • import declarations tell compiler where to locate classes used
            • When you create applets, import the JApplet class (package javax.swing)
            • import the Graphics class (package java.awt) to draw graphics
                   – Can draw lines, rectangles ovals, strings of characters
            • import specifies directory structure

    – Applets have at least one class declaration (like applications)
            • Rarely create classes from scratch
    – Use pieces of existing classes
    – Inheritance - create new classes from old ones (ch. 9)

8 public class WelcomeApplet extends JApplet {


    – Begins class declaration for class WelcomeApplet
        • Keyword class then class name
            – extends followed by class name
        • Indicates class to extend (JApplet)
            – JApplet : superclass (base class)
            – WelcomeApplet : subclass (derived class)
        • WelcomeApplet now has methods and data of JApplet
 

    – Class JApplet defined for us
       • Someone else defined "what it means to be an applet"
            – Applets require over 200 methods!
       • extends JApplet
        – Inherit methods, do not have to declare them all
       • Do not need to know every detail of class JApplet

    – Class WelcomeApplet is a blueprint
        • appletviewer or browser creates an object of class WelcomeApplet
            – Keyword public required
            – File can only have one public class
            – public class name must be file name

11 public void paint( Graphics g )


   
– Our class inherits method paint from JApplet
        • By default, paint has empty body
        • Override (redefine) paint in our class
    – Methods paint, init, and start
        • Guaranteed to be called automatically
        • Our applet gets "free" version of these by inheriting from JApplet
    – Free versions have empty body (do nothing)
    – Every applet does not need all three methods
        • Override the ones you need
    – Applet container “draws itself” by calling method paint
   
– Method paint
        • Lines 11-19 are the declaration of paint
        • Draws graphics on screen
        • void indicates paint returns nothing when finishes task
        • Parenthesis define parameter list - where methods receive data to perform tasks
            – Normally, data passed by programmer, as in JOptionPane.showMessageDialog
        • paint gets parameters automatically
            – Graphics object used by paint
        • Mimic paint's first line

14 super.paint( g );


   
– Calls version of method paint from superclass JApplet
    – Should be first statement in every applet’s paint method

17 g.drawString( "Welcome to Java Programming!", 25, 25 );


– Body of paint
    • Method drawString (of class Graphics)
    • Called using Graphics object g and dot (.)
    • Method name, then parenthesis with arguments
        – First argument: String to draw
        – Second: x coordinate (in pixels) location
        – Third: y coordinate (in pixels) location
        – Java coordinate system
    • Measured in pixels (picture elements)
    • Upper left is (0,0)

• Running the applet
– Compile
    • javac WelcomeApplet.java
    • If no errors, bytecodes stored in WelcomeApplet.class
– Create an HTML file
    • Loads the applet into appletviewer or a browser
    • Ends in .htm or .html
– To execute an applet
    • Create an HTML file indicating which applet the browser (or appletviewer) should load and execute

1 <html>
2 <applet code = "WelcomeApplet.class" width = "300" height = "45">
3 </applet>
4 </html>


– Simple HTML file (WelcomeApplet.html)
    • Usually in same directory as .class file
    • Remember, .class file created after compilation
– HTML codes (tags)
    • Usually come in pairs
    • Begin with < and end with >
– Lines 1 and 4 - begin and end the HTML tags
– Line 2 - begins <applet> tag
    • Specifies code to use for applet
    • Specifies width and height of display area in pixels
– Line 3 - ends <applet> tag

1 <html>
2 <applet code = "WelcomeApplet.class" width = "300" height = "45">
3 </applet>
4 </html>


– appletviewer only understands <applet> tags
    • Ignores everything else
    • Minimal browser
– Executing the applet
    • appletviewer WelcomeApplet.html
    • Perform in directory containing .class file

• Running the applet in a Web browser




3.4 Drawing Strings and Lines
• More applets
    – First example
        • Display two lines of text
        • Use drawString to simulate a new line with two drawString statements
    – Second example
        • Method g.drawLine(x1, y1, x2, y2 )
    – Draws a line from (x1, y1) to (x2, y2)
    – Remember that (0, 0) is upper left
        • Use drawLine to draw a line beneath and above a string

1 // Fig. 3.9: WelcomeApplet2.java
2 // Displaying multiple strings in an applet.
3
4 // Java packages
5 import java.awt.Graphics; // import class Graphics
6 import javax.swing.JApplet; // import class JApplet
7
8 public class WelcomeApplet2 extends JApplet {
9
10     // draw text on applet’s background
11     public void paint( Graphics g )
12     {
13         // call superclass version of method paint
14         super.paint( g );
15
16         // draw two Strings at different locations
17         g.drawString( "Welcome to", 25, 25 );
18         g.drawString( "Java Programming!", 25, 40 );
19
20     } // end method paint
21
22 } // end class WelcomeApplet2

1 <html>
2 <applet code = "WelcomeApplet2.class" width = "300" height = "60">
3 </applet>
4 </html>


1 // Fig. 3.11: WelcomeLines.java
2 // Displaying text and lines
3
4 // Java packages
5 import java.awt.Graphics; // import class Graphics
6 import javax.swing.JApplet; // import class JApplet
7
8 public class WelcomeLines extends JApplet {
9
10     // draw lines and a string on applet’s background
11     public void paint( Graphics g )
12     {
13             // call superclass version of method paint
14             super.paint( g );
15
16             // draw horizontal line from (15, 10) to (210, 10)
17             g.drawLine( 15, 10, 210, 10 );
18
19             // draw horizontal line from (15, 30) to (210, 30)
20             g.drawLine( 15, 30, 210, 30 );
21
22             // draw String between lines at location (25, 25)
23             g.drawString( "Welcome to Java Programming!", 25, 25 );
24
25     } // end method paint
26
27 } // end class WelcomeLines

1 <html>
2 <applet code = "WelcomeLines.class" width = "300" height = "40">
3 </applet>
4 </html>


• Method drawLine of class Graphics
    – Takes as arguments Graphics object and line’s end points
    – X and y coordinate of first endpoint
    – X and y coordinate of second endpoint

3.5 Adding Floating-Point Numbers
• Next applet
    – Mimics application for adding two integers (Fig 2.9)
        • This time, use floating point numbers (numbers with a decimal point)
    – Using primitive types
        • double – double precision floating-point numbers
        • float – single precision floating-point numbers
    – Show program, then discuss

1 // Fig. 3.13: AdditionApplet.java
2 // Adding two floating-point numbers.
3
4 // Java packages
5 import java.awt.Graphics; // import class Graphics
6 import javax.swing.*; // import package javax.swing
7
8 public class AdditionApplet extends JApplet {
9         double sum; // sum of values entered by user
10
11         // initialize applet by obtaining values from user
12         public void init()
13         {
14                 String firstNumber; // first string entered by user
15                 String secondNumber; // second string entered by user
16
17                 double number1; // first number to add
18                 double number2; // second number to add
19
20                 // obtain first number from user
21                 firstNumber = JOptionPane.showInputDialog("Enter first floating-point value" );
22                
23
24                 // obtain second number from user
25                 secondNumber = JOptionPane.showInputDialog("Enter second floating-point value" );
26    
27
28                 // convert numbers from type String to type double
29                 number1 = Double.parseDouble( firstNumber );
30                 number2 = Double.parseDouble( secondNumber );
31
32                 // add numbers
33                 sum = number1 + number2;
34
35          } // end method init
36
37         // draw results in a rectangle on applet’s background
38         public void paint( Graphics g )
39         {
40                 // call superclass version of method paint
41                 super.paint( g );
42
43                 // draw rectangle starting from (15, 10) that is 270
44                 // pixels wide and 20 pixels tall
45                 g.drawRect( 15, 10, 270, 20 );
46
47                 // draw results as a String at (25, 25)
48                 g.drawString( "The sum is " + sum, 25, 25 );
49
50         } // end method paint
51
52 } // end class AdditionApplet


1 <html>
2 <applet code = "AdditionApplet.class" width = "300" height = "65">
3 </applet>
4 </html>

 

 

 

– Lines 1-2: Comments
5 import java.awt.Graphics; // import class Graphics
–Line 5: imports class Graphics
    • import not needed if use full package and class name public void paint ( java.awt.Graphics g )

6 import javax.swing.*; // import package javax.swing
   
– Line 8: specify entire javax.swing package
        • * indicates all classes in javax.swing are available
    – Includes JApplet and JOptionPane
    – Use JOptionPane instead of javax.swing.JOptionPane
        • * does not not load all classes
    – Compiler only loads classes it uses

8 public class AdditionApplet extends JApplet {
   
– Begin class declaration
        • Extend JApplet, imported from package javax.swing

9 double sum; // sum of values entered by user
   
– Field declaration
        • Each object of class gets own copy of the field
        • Declared in body of class, but not inside methods
    – Variables declared in methods are local variables
    – Can only be used in body of method
        • Fields can be used anywhere in class
        • Have default value (0.0 in this case)
   
– Primitive type double
        • Used to store floating point (decimal) numbers

12 public void init()
   
– Method init
        • Normally initializes fields and applet class
        • Guaranteed to be first method called in applet
        • First line must always appear as above
    – Returns nothing (void), takes no arguments

13 {
   
– Begins body of method init

14 String firstNumber; // first string entered by user
15 String secondNumber; // second string entered by user
16
17 double number1; // first number to add
18 double number2; // second number to add


   
– Declare variables
    – Two types of variables
         • Reference variables (called references)
    – Refer to objects (contain location in memory)
        • Objects defined in a class definition
        • Can contain multiple data and methods
    – paint receives a reference called g to a Graphics object
    – Reference used to call methods on the Graphics object
        • Primitive types (called variables)
            – Contain one piece of data
   
– Distinguishing references and variables
• If type is a class name, then reference
        – String is a class
        – firstNumber, secondNumber
• If type a primitive type, then variable
        – double is a primitive type
        – number1, number2

21 firstNumber = JOptionPane.showInputDialog("Enter first floating-point value" );
 
• Method JOptionPane.showInputDialog
    • Prompts user for input with string
    • Enter value in text field, click OK
        – If not of correct type, error occurs
        – In Chapter 15 learn how to deal with this
    • Returns string user inputs
    • Assignment statement to string
        – Lines 25-26: As above, assigns input to secondNumber

29 number1 = Double.parseDouble( firstNumber );
30 number2 = Double.parseDouble( secondNumber );


   
– static method Double.parseDouble
        • Converts String argument to a double
        • Returns the double value
        • Remember static method syntax
            – ClassName.methodName( arguments )

33 sum = number1 + number2;


   
– Assignment statement
        • sum an field, can use anywhere in class
            – Not defined in init but still used

35 } // end method init


   
– Ends method init
        • appletviewer (or browser) calls inherited method start
        • start usually used with multithreading
            – Advanced concept, in Chapter 16
            – We do not declare it, so empty declaration in JApplet used
        • Next, method paint called

45 g.drawRect( 15, 10, 270, 20 );


   
– Method drawRect( x1, y1, width, height )
        • Draw rectangle, upper left corner (x1, y1), specified width and height
        • Line 45 draws rectangle starting at (15, 10) with a width of 270 pixels and a height of 20 pixels

48 g.drawString( "The sum is " + sum, 25, 25 );


   
– Sends drawString message (calls method) to Graphics object using reference g
        •" The sum is" + sum - string concatenation
            – sum converted to a string
        • sum can be used, even though not defined in paint
            – field, can be used anywhere in class
            – Non-local variable
 


                    Source: Java: How to Program – 5th Edition – Deitel & Deitel



 Return to Courses | Course Content  


 Home | Résumé | Courses | Contact | Useful Links | Favorite Links | USC - Homepage