Chapter introduction to Java Applets Introduction



Yüklə 370 Kb.
tarix07.11.2018
ölçüsü370 Kb.
#78551


Chapter 3 - Introduction to Java Applets


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 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
    • java.sun.com/products/jdk


3.2.1 The TicTacToe Applet

  • Running applets

    • In command prompt, change to demo subdirectory of applet
    • cd c:\jdk1.3\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 Quit commands under Applet menu


3.2.1 The TicTacToe Applet

  • You start as player "X"



3.2.2 The DrawTest Applet



3.2.3 The Java2D Applet

  • Demonstrates 2D drawing capabilities built into Java2



3.3 A 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


Java applet Program Output



3.3 A Simple Java Applet: Drawing a String

    • Comments
      • Name of source code and description of applet
    • Import predefined classes grouped into packages
      • import statements 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


3.3 A Simple Java Applet: Drawing a String

    • Applets have at least one class definition (like applications)
      • Rarely create classes from scratch
        • Use pieces of existing class definitions
        • Inheritance - create new classes from old ones (ch. 15)
    • Begins class definition for class WelcomeApplet
      • Keyword class then class name
    • extends followed by class name
      • Indicates class to inherit from (JApplet)
        • JApplet : superclass (base class)
        • WelcomeApplet : subclass (derived class)
      • WelcomeApplet now has methods and data of JApplet


3.3 A Simple Java Applet: Drawing a String

    • 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 define them all
      • Do not need to know every detail of class JApplet


3.3 A Simple Java Applet: Drawing a String

    • 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


3.3 A Simple Java Applet: Drawing a String

    • 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


3.3 A Simple Java Applet: Drawing a String

    • Method paint
      • Lines 13-21 are the definition 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


3.3 A Simple Java Applet: Drawing a String

    • Calls version of method paint from superclass JApplet
    • Should be first statement in every applet’s paint method
    • Body of paint
      • Method drawString (of class Graphics)
      • Called using Graphics object g and dot operator (.)
      • 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)


3.3.1 Compiling and Executing WelcomeApplet

  • 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


3.3.1 Compiling and Executing WelcomeApplet

    • 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 tag
      • Specifies code to use for applet
      • Specifies width and height of display area in pixels
    • Line 3 - ends tag

      3.3.1 Compiling and Executing WelcomeApplet

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


          3.4 Two More Simple Applets: 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. import 2. Class WelcomeApplet2 (extends JApplet) 3. paint 3.1 drawString 3.2 drawString on same x coordinate, but 15 pixels down

          • 1 // Fig. 3.8: WelcomeApplet2.java

          • 2 // Displaying multiple strings in an applet.

          • 3

          • 4 // Java core packages

          • 5 import java.awt.Graphics; // import class Graphics

          • 6

          • 7 // Java extension packages

          • 8 import javax.swing.JApplet; // import class JApplet

          • 9

          • 10 public class WelcomeApplet2 extends JApplet {

          • 11

          • 12 // draw text on applet’s background

          • 13 public void paint( Graphics g )

          • 14 {

          • 15 // call inherited version of method paint

          • 16 super.paint( g );

          • 17

          • 18 // draw two Strings at different locations

          • 19 g.drawString( "Welcome to", 25, 25 );

          • 20 g.drawString( "Java Programming!", 25, 40 );

          • 21

          • 22 } // end method paint

          • 23

          • 24 } // end class WelcomeApplet2



          HTML file Program Output

          • 1

          • 2
          • 3

          • 4



          WelcomeLines.java 2. Class WelcomeLines (extends JApplet) 3. paint 3.1 drawLine 3.2 drawLine 3.3 drawString Program Output

          • 1 // Fig. 3.10: WelcomeLines.java

          • 2 // Displaying text and lines

          • 3

          • 4 // Java core packages

          • 5 import java.awt.Graphics; // import class Graphics

          • 6

          • 7 // Java extension packages

          • 8 import javax.swing.JApplet; // import class JApplet

          • 9

          • 10 public class WelcomeLines extends JApplet {

          • 11

          • 12 // draw lines and a string on applet’s background

          • 13 public void paint( Graphics g )

          • 14 {

          • 15 // call inherited version of method paint

          • 16 super.paint( g );

          • 17

          • 18 // draw horizontal line from (15, 10) to (210, 10)

          • 19 g.drawLine( 15, 10, 210, 10 );

          • 20

          • 21 // draw horizontal line from (15, 30) to (210, 30)

          • 22 g.drawLine( 15, 30, 210, 30 );

          • 23

          • 24 // draw String between lines at location (25, 25)

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

          • 26

          • 27 } // end method paint

          • 28

          • 29 } // end class WelcomeLines



          HTML file

          • 1

          • 2
          • 3

          • 4



          3.4 Two More Simple Applets: Drawing Strings and Lines

          • 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 Another Java Applet: 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 data types
            • Show program, then discuss


          AdditionApplet.java 1. import 2. Class AdditionApplet (extends JApplet) 3. Instance variable 4. init 4.1 Declare variables 4.2 showInputDialog 4.3 parseDouble

          • 1 // Fig. 3.12: AdditionApplet.java

          • 2 // Adding two floating-point numbers.

          • 3

          • 4 // Java core packages

          • 5 import java.awt.Graphics; // import class Graphics

          • 6

          • 7 // Java extension packages

          • 8 import javax.swing.*; // import package javax.swing

          • 9

          • 10 public class AdditionApplet extends JApplet {

          • 11 double sum; // sum of values entered by user

          • 12

          • 13 // initialize applet by obtaining values from user

          • 14 public void init()

          • 15 {

          • 16 String firstNumber; // first string entered by user

          • 17 String secondNumber; // second string entered by user

          • 18 double number1; // first number to add

          • 19 double number2; // second number to add

          • 20

          • 21 // obtain first number from user

          • 22 firstNumber = JOptionPane.showInputDialog(

          • 23 "Enter first floating-point value" );

          • 24

          • 25 // obtain second number from user

          • 26 secondNumber = JOptionPane.showInputDialog(

          • 27 "Enter second floating-point value" );

          • 28

          • 29 // convert numbers from type String to type double

          • 30 number1 = Double.parseDouble( firstNumber );

          • 31 number2 = Double.parseDouble( secondNumber );

          • 32



          5. Draw applet contents 5.1 Draw a rectangle 5.2 Draw the results HTML file

          • 33 // add numbers

          • 34 sum = number1 + number2;

          • 35 }

          • 36

          • 37 // draw results in a rectangle on applet’s background

          • 38 public void paint( Graphics g )

          • 39 {

          • 40 // call inherited 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



          Program Output



          3.5 Another Java Applet: Adding Floating-Point Numbers

            • Lines 1-2: Comments
            • Line 5: imports class Graphics
              • import not needed if use full package and class name
              • public void paint ( java.awt.Graphics g )
            • 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


          3.5 Another Java Applet: Adding Floating-Point Numbers

            • Begin class definition
              • Inherit from JApplet, imported from package javax.swing
            • Instance variable declaration
              • Each object of class gets own copy of the instance variable
              • Declared in body of class, but not inside methods
                • Variables declared in methods are local variables
                • Can only be used in body of method
              • Instance variables can be used anywhere in class
              • Have default value (0.0 in this case)


          3.5 Another Java Applet: Adding Floating-Point Numbers

            • Primitive data type double
              • Used to store floating point (decimal) numbers
            • Method init
              • Normally initializes instance variables and applet class
              • Guaranteed to be first method called in applet
              • First line must always appear as above
                • Returns nothing (void), takes no arguments
            • Begins body of method init


          3.5 Another Java Applet: Adding Floating-Point Numbers

            • Declare variables
            • Two types of variables
              • Reference variables (called references)
                • Refer to objects (contain location in memory)
                • paint receives a reference called g to a Graphics object
                • Reference used to call methods on the Graphics object
              • Primitive data types (called variables)
                • Contain one piece of data


          3.5 Another Java Applet: Adding Floating-Point Numbers

            • Distinguishing references and variables
              • If data type is a class name, then reference
                • String is a class
                • firstNumber, secondNumber
              • If data type a primitive type, then variable
                • double is a primitive data type
                • number1, number2


          3.5 Another Java Applet: Adding Floating-Point Numbers

          • 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 14 learn how to deal with this
              • Returns string user inputs
              • Assignment statement to string
            • Lines 26-27: As above, assigns input to secondNumber


          3.5 Another Java Applet: Adding Floating-Point Numbers

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


          3.5 Another Java Applet: Adding Floating-Point Numbers

            • Ends method init
              • appletviewer (or browser) calls inherited method start
              • start usually used with multithreading
                • Advanced concept, in Chapter 15
                • We do not define it, so empty definition in JApplet used
              • Next, method paint called
            • 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


          3.5 Another Java Applet: Adding Floating-Point Numbers

            • 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
                • Instance variable, can be used anywhere in class
                • Non-local variable


          3.6 Viewing Applets in a Web Browser

          • Applets can execute on Java-enabled browsers

            • Many different browser version supporting different Java version specifications
              • Some support for Java 1.0, many for Java 1.1 inconsistently
            • Netscape Navigator 6 supports Java 2 (section 3.6.1)
            • Use Java Plug-in to execute Java 2 applets on other browsers (section 3.6.2)


          3.6.1 Viewing Applets in Netscape Navigator 6



          Now, lets review packages needed for applets



          6.7 Java API Packages

          • Packages

            • Classes grouped into categories of related classes
            • Promotes software reuse
            • import statements specify classes used in Java programs
              • e.g., import javax.swing.JApplet;






          Variable vs. objects





          More examples

          • import java.applet.*;

          • import java.awt.*;

          • public class DrawingLines extends Applet {

          • int width, height;

          • public void init()

          • { width = getSize().width;

          • height = getSize().height;

          • setBackground( Color.black );

          • }

          • public void paint( Graphics g )

          • {

          • g.setColor( Color.green );

          • for ( int i = 0; i < 10; ++i )

          • {

          • g.drawLine( width, height, i * width / 10, 0 );

          • } }}



          Example from http://www.dgp.toronto.edu/~mjmcguff/learn/java/01-drawingLines/

          • import java.applet.*;

          • import java.awt.*;

          • public class DrawingLines extends Applet {

          • int width, height;

          • public void init()

          • { width = getSize().width;

          • height = getSize().height;

          • setBackground( Color.black );

          • }

          • public void paint( Graphics g )

          • {

          • g.setColor( Color.green );

          • for ( int i = 0; i < 10; ++i )

          • {

          • g.drawLine( width, height, i * width / 10, 0 );

          • } }}



          More examples

          • http://www.dgp.toronto.edu/~mjmcguff/learn/java/02-drawingOtherStuff/



          3.6.2 Viewing Applets in Other Browsers Using the Java Plug-In

          • Java Plug-in support from Sun

            • Uses Java 2 Runtime Environment (J2RE)
              • Can be downloaded and installed dynamically
            • Applet HTML file must indicate use of Java Plug-in
              • Convert and tags to plug-in-loading tags
              • Sun provides Java Plug-in 1.3 HTML Converter for conversion
                • Download and info at java.sun.com/products/plugin
                • Executable in classes subdirectory of converter directory
                  • Batch file HTMLConverter.bat on Windows
                  • HTML Converter.sh shell script for Linux/UNIX


          3.7 Java Applet Internet and World Wide Web Resources

          • Many Java applet resources available

            • java.sun.com/applets/
            • Many resources and free applets
              • Has demo applets from J2SDK
            • Sun site developer.java.sun.com/developer
              • Tech support, discussion forums, training, articles, links, etc.
              • Registration required
            • www.jars.com
              • Rates applets, top 1, 5 and 25 percent
              • View best applets on web



    • Yüklə 370 Kb.

      Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2022
rəhbərliyinə müraciət

    Ana səhifə