CSC 308 2.0 System Development with Java Introduction to Java Applets Budditha Hettige Department of Statistics and Computer Science
What is an applet? applet: a Java program that can be inserted into a web page and run by loading that page in a browser Brings web pages to life with interactive content, multimedia, games, and more The feature of Java that is primarily responsible for its initial popularity Users can run applets simply by visiting a web page that contains an applet program (if they have the Java runtime environment installed on their computer) Budditha Hettige 2
Applet classes in Java implementation a top-level container, like a JFrame behaves more like a JPanel class javax.swing.japplet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet» javax.swing.japplet Budditha Hettige 3
Applets contd. 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 Budditha Hettige 4
Sample Program import java.awt.graphics; // import class Graphics import javax.swing.japplet; // import class JApplet public class WelcomeApplet extends JApplet { // draw text on applet s background public void paint( Graphics g ) { // call superclass version of method paint super.paint( g ); // draw a String at x-coordinate 25 and y-coordinate g.drawstring( "Welcome to Java Programming!", 25, 25 ); } // end method paint } // end class WelcomeApplet Budditha Hettige 5
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 Budditha Hettige 6
Create a HTML file 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 Budditha Hettige 7
Execute an applet appletviewer only understands <applet> tags Ignores everything else Minimal browser Executing the applet appletviewer WelcomeApplet.html Perform in directory containing.class file Budditha Hettige 8
The paint method paint needs to be told where on the screen it can draw This will be the only parameter it needs paint doesn t return any result A Graphics (short for Graphics context ) is an object that holds information about a painting It remembers what color you are using It remembers what font you are using You can paint on it (but it doesn t remember what you have painted) Budditha Hettige 9
Colors The java.awt package defines a class named Color There are 13 predefined colors here are their fully-qualified names: Color.BLACK Color.PINK Color.GREEN Color.DARK_GRAY Color.RED Color.CYAN Color.GRAY Color.ORANGE Color.BLUE Color.LIGHT_GRAY Color.YELLOW Color.WHITE Color.MAGENTA Budditha Hettige 10
Colors New Colors Every color is a mix of red, green, and blue You can make your own colors: new Color( red, green, blue ) Amounts range from 0 to 255 Black is (0, 0, 0), white is (255, 255, 255) We are mixing lights, not pigments Yellow is red + green, or (255, 255, 0) Setting a color To use a color, we tell our Graphics g what color we want: g.setcolor(color.red); g will remember this color and use it for everything until we tell it some different color Budditha Hettige 11
Pixels A pixel is a picture (pix) element one pixel is one dot on your screen there are typically 72 to 90 pixels per inch java.awt measures everything in pixels Budditha Hettige 12
Java s coordinate system (0, 0) (50, 0) (0, 20) (50, 20) (w-1, h-1) Java uses an (x, y) coordinate system (0, 0) is the top left corner (50, 0) is 50 pixels to the right of (0, 0) (0, 20) is 20 pixels down from (0, 0) (w - 1, h - 1) is just inside the bottom right corner, where w is the width of the window and h is its height Budditha Hettige 13
Drawing rectangles There are two ways to draw rectangles: g.drawrect( left, top, width, height ); g.fillrect(left, top, width, height ); Budditha Hettige 14
Sample Applet import java.applet.applet; import java.awt.*; public class Drawing extends Applet { } } public void paint(graphics g) { g.setcolor(color.blue); g.fillrect(20, 20, 50, 30); g.setcolor(color.red); g.fillrect(50, 30, 50, 30); Budditha Hettige 15
More java.awt methods g.drawline( x1, y1, x2, y2 ); g.drawoval( left, top, width, height ); g.filloval( left, top, width, height ); g.drawroundrect( left, top, width, height ); g.fillroundrect( left, top, width, height ); g.drawarc( left, top, width, height, startangle, arcangle ); g.drawstring( string, x, y ); Budditha Hettige 16
Applet Methods public void init () public void start () public void stop () public void destroy () public void paint (Graphics) public void repaint() public void update (Graphics) public void showstatus(string) public String getparameter(string) java.awt.panel java.a pplet.apple t destroy() init() start() stop() Budditha Hettige 17
Applet Method contd. import java.applet.*; import java.awt.*; public class BasicApplet extends Applet { public void init() { // Called once by the browser when // it starts the applet. } public void start() { // Called whenever the page containing // this applet is made visible. } public void stop() { // Called whenever the page containing this // applet is not visible. } public void destroyed() { // Called once when the browser destroys // this applet. } public void paint(graphics g) { // Called whenever this applet needs to // repaint itself. } } Budditha Hettige 18
The Life-Cycle of Applet init() Called exactly once in an applet s life. Called when applet is first loaded, which is after object creation, e.g., when the browser visits the web page for the first time. Used to read applet parameters, start downloading any other images or media files, etc. start() Called at least once. Called when an applet is started or restarted, i.e., whenever the browser visits the web page. stop() Called at least once. Called when the browser leaves the web page. Budditha Hettige 19
Applet Life-Cycle (Cont.) destroy() Called exactly once. Called when the browser unloads the applet. Used to perform any final clean-up. init start stop destroy start Budditha Hettige 20
Passing parameter to applet Parameters can be placed in the HTML code of your web page, which your applet can read: <APPLET code="mypackage/myapplet.class" width=400 height=300> <PARAM name="password" value="tacoma"> </PARAM> </APPLET> Methods in the JApplet class: public String getparameter(string name) Returns the value of the parameter with the given name. String password = this.getparameter("password"); public String[][] getparameterinfo() Returns an array of all parameter names, descriptions, and values. Budditha Hettige 21
Applet on NetBeans Budditha Hettige 22
Sample Programs C:/Program Files/Java/jdk1.6.0_23/demo/applets/ Budditha Hettige 23