Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
1 Chapter 3 - Introduction to Java Applets Will not cover Section 3.7 Thinking About Objects: Identifying the Classes in a Problem Statement 2003 Prentice Hall, Inc. All rights reserved. 2 Applet A program that runs in: 1. Web browser – Executes when HTML (Hypertext Markup Language) document containing applet is opened – When a browser executes an applet, the browser is called the applet container OR 2. appletviewer (Java test utility for applets): Also, when the appletviewer executes an applet, the appletviewer is called the applet container 2003 Prentice Hall, Inc. All rights reserved. 3 Running Two Sample Applets from the Java 2 Software Development Kit • TicTacToe • Java2Demo 2003 Prentice Hall, Inc. All rights reserved. 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // Fig. 3.6: WelcomeApplet.java // A first applet in Java. // Java packages import java.awt.Graphics; import javax.swing.JApplet; import allows us to use predefined classes (allowing us to use applets and import class in Graphics graphics, this case). // // import class JApplet Outline Java applet public class WelcomeApplet extends JApplet { extends allows us to inherit the // draw text on applet’s background public void paint( Graphics g ) capabilities of class JApplet. { // call superclass version of method paint super.paint( g ); // draw a String at x-coordinate 25 and y-coordinate 25 g.drawString( "Welcome to Java Programming!", 25, 25 ); } // end method paint } // end class WelcomeApplet Method paint is called in all applets. Its first line must be defined as above. Program Output 2003 Prentice Hall, Inc. All rights reserved. Discussing the Applet ( I ) 8 public class WelcomeApplet extends JApplet { – Applets have at least one class declaration – Use pieces of existing classes – Create new classes from old ones: Inheritance (ch. 9) – Begins class declaration for class WelcomeApplet – Keyword public required; File can only have one public class – extends followed by class name (JApplet) • Indicates WelcomeApplet to extend JApplet – JApplet : superclass – WelcomeApplet : subclass • WelcomeApplet now has methods and data of JApplet – Class JApplet defined for us • Applets require over 200 methods! 2003 Prentice Hall, Inc. All rights reserved. 5 6 Discussing the Applet ( II ) 11 public void paint( Graphics g ) • WelcomeApplet inherits method paint from JApplet – By default, paint has empty body – Redefine paint in WelcomeApplet • Methods paint, init, and start – Guaranteed to be called automatically – WelcomeApplet 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/ Redefine the ones you need from paint, init, and start • Applet container “draws itself” by calling method paint 2003 Prentice Hall, Inc. All rights reserved. 7 Discussing the Applet ( III ): Method paint 11 public void paint( Graphics g ) – Draws graphics on screen – void indicates paint returns nothing when finishes task – Parenthesis define parameter list - where methods receive data to perform tasks – paint gets parameters automatically • Graphics object (called g, created by applet container) used by paint – Mimic paint's first line 2003 Prentice Hall, Inc. All rights reserved. 8 Discussing the Applet ( IV ) 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 (.) • parenthesis contain 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) 2003 Prentice Hall, Inc. All rights reserved. 9 Running the applet – Compile – Create an HTML file • File extension type htm or html • Indicates which applet the browser (or appletviewer) should load and execute – Execute usinge a browser or appletviewer 2003 Prentice Hall, Inc. All rights reserved. 10 HTML Code for Applet (I) 1 2 3 4 <html> <applet code = "WelcomeApplet.class" width = "300" height = "45"> </applet> </html> – Simple HTML file (WelcomeApplet.html) • Usually in same directory as .class file – HTML codes (tags) • Begin with < and end with > – <html> begin ; </html> end tags – <applet code = "WelcomeApplet.class" width = "300" height = "45“ > – tag • Specifies code to use for applet • Specifies width and height of display area in pixels – </applet> marks end of applet 2003 Prentice Hall, Inc. All rights reserved. 11 HTML Code for Applet (II) 1 2 3 4 <html> <applet code = "WelcomeApplet.class" width = "300" height = "45"> </applet> </html> – appletviewer only understands <applet> tags • Ignores everything else – Executing the applet • appletviewer WelcomeApplet.html • Perform in directory containing .class file 2003 Prentice Hall, Inc. All rights reserved. 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // Fig. 3.9: WelcomeApplet2.java // Displaying multiple strings in an applet. // Java packages import java.awt.Graphics; import javax.swing.JApplet; // import class Graphics // import class JApplet public class WelcomeApplet2 extends JApplet { // draw text on applet’s background public void paint( Graphics g ) { // call superclass version of method paint super.paint( g ); // draw two Strings at different locations g.drawString( "Welcome to", 25, 25 ); g.drawString( "Java Programming!", 25, 40 ); Outline WelcomeApplet2.j ava 1. import 2. Class WelcomeApplet2 (extends JApplet) 3. paint 3.1 drawString } // end method paint } // end class WelcomeApplet2 The two drawString3.2 drawString on same In x coordinate, statements simulate a newline. but pixels down fact, the concept of lines of15 text does not exist when drawing strings. 2003 Prentice Hall, Inc. All rights reserved. 13 Outline 1 2 3 4 <html> <applet code = "WelcomeApplet2.class" width = "300" height = "60"> </applet> </html> HTML file Program Output 2003 Prentice Hall, Inc. All rights reserved. 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 // Fig. 3.11: WelcomeLines.java // Displaying text and lines // Java packages import java.awt.Graphics; import javax.swing.JApplet; // import class Graphics // import class JApplet public class WelcomeLines extends JApplet { // draw lines and a string on applet’s background public void paint( Graphics g ) { // call superclass version of method paint super.paint( g ); // draw horizontal line from (15, 10) to (210, 10) g.drawLine( 15, 10, 210, 10 ); // draw horizontal line from (15, 30) to (210, 30) g.drawLine( 15, 30, 210, 30 ); // draw String between lines at location (25, 25) g.drawString( "Welcome to Java Programming!", 25, 25 ); Outline WelcomeLines.ja va 2. Class WelcomeLines (extends JApplet) 3. paint 3.1 drawLine 3.2 drawLine Draw horizontal lines with drawLine (endpoints have same 3.3 drawString x coordinate). } // end method paint } // end class WelcomeLines Program Output 2003 Prentice Hall, Inc. All rights reserved. 15 1 2 3 4 <html> <applet code = "WelcomeLines.class" width = "300" height = "40"> </applet> </html> Outline HTML file 2003 Prentice Hall, Inc. All rights reserved. 16 3.4 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 2003 Prentice Hall, Inc. All rights reserved. 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Outline // Fig. 3.13: AdditionApplet.java // Adding Adding two numbers. // two floating-point floating-point numbers import java.awt.Graphics; // import class Graphics // Java packages import java.awt.Graphics; // import class Graphics import javax.swing.*; //extends import package public class AdditionApplet JAppletjavax.swing { double sum; AdditionApplet. java // sum of the values entered by the user public class AdditionApplet extends JApplet { double sum; // sum of values entered by user public void init() * allows any class in the { // initialize applet by obtaining valuespackage from user to be used. String firstNumber, // first string entered by user public void init() secondNumber; // second string entered by user { doublefirstNumber; number1, // first number to add String // first string entered by user number2; // second number to String secondNumber; // second string entered add by user // read in first double number1; firstNumber = double number2; Field sum may be used anywhere number fromnumber user to add // first in the class, even in other methods. // second number to add JOptionPane.showInputDialog( Type double can // obtain first first numberfloating-point from user "Enter value" ); point numbers. firstNumber = JOptionPane.showInputDialog( first floating-point value" //"Enter read in second number from user); secondNumber = // obtain second number from user JOptionPane.showInputDialog( secondNumber = JOptionPane.showInputDialog( "Enter second floating-point value" ); "Enter second floating-point value" ); store floating 1. import 2. Class AdditionApplet (extends JApplet) 3. Fields 4. init 4.1 Declare variables 4.2 showInputDialog 4.3 parseDouble // convert numbers from type String to type double number1 = Double.parseDouble( firstNumber ); number2 = Double.parseDouble( secondNumber ); 2003 Prentice Hall, Inc. All rights reserved. 18 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 1 2 3 4 31 32 33 } } // end method init 34 35 public void paint( Graphics on g )applet’s background // draw results in a rectangle { public void paint( Graphics g ) { // draw the results with g.drawString // call superclass version paint g.drawRect( 15, 10, 270,of20method ); super.paint( g ); 36 37 38 39 g.drawString( "The sum is " + sum, 25, 25 ); 40 } 41 } 1 2 3 4 Outline // //add addnumbers the numbers sum = number1 + number2; sum = number1 + number2; 5. Draw applet contents 5.1 Draw a rectangle 5.2 Draw the results // draw rectangle starting from (15, 10) that is 270 // pixels wide and 20 pixels tall g.drawRect( 15, 10, 270, 20 ); <html> <applet code="AdditionApplet.class" width=300 height=50> // draw results as a String at (25, 25) </applet> g.drawString( "The sum is " + sum, 25, 25 ); </html> } // end method paint } // end class AdditionApplet drawRect takes the upper left coordinate, width, and height of the rectangle to draw. HTML file <html> <applet code = "AdditionApplet.class" width = "300" height = "65"> </applet> </html> 2003 Prentice Hall, Inc. All rights reserved. 19 Outline Program Output 2003 Prentice Hall, Inc. All rights reserved. 20 Discussion (II): Adding Floating-Point Numbers 8 9 public class AdditionApplet extends JApplet { 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 2003 Prentice Hall, Inc. All rights reserved. 21 Discussion (III): Adding Floating-Point 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 2003 Prentice Hall, Inc. All rights reserved. 22 Discussion (IV): Adding Floating-Point Numbers 14 15 16 17 18 String firstNumber; String secondNumber; // first string entered by user // second string entered by user double number1; double number2; // first number to add // second number to add • Two types of variables – Primitive types (called variables) • Contain one piece of data – 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 2003 Prentice Hall, Inc. All rights reserved. 23 Discussion (V): Adding Floating-Point Numbers 14 15 16 17 18 String firstNumber; String secondNumber; // first string entered by user // second string entered by user double number1; double number2; // first number to add // second number to add – 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 2003 Prentice Hall, Inc. All rights reserved. 24 Discussion (VI): Adding Floating-Point Numbers 33 sum = number1 + number2; – Assignment statement • sum is a field, can use anywhere in class – Not defined in init but still used 2003 Prentice Hall, Inc. All rights reserved. 25 Discussion (VII): Adding Floating-Point Numbers 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 2003 Prentice Hall, Inc. All rights reserved.