180 likes | 274 Views
Lecture 09 Applets. Introduction to Applets. Applets should NOT have main method but rather init, stop, paint etc They should be run through javac compiler getting a .class file as before Create an HTML file (say HelloWorld.HTML in same directory as .class file) and include in this
E N D
Introduction to Applets • Applets should NOT have main method but rather init, stop, paint etc • They should be run through javac compiler getting a .class file as before • Create an HTML file (say HelloWorld.HTML in same directory as .class file) and include in this • <applet code="Example.class" width=500 height=200 > </applet> in simplest case with no parameters where applet will run in window of given width and height (in pixels)
More on Applets • Given the following HTML <APPLET CODE="StockGraph" CODEBASE="http://www.javasoft.com/applets/"WIDTH=200 HEIGHT=200> </APPLET> • Runs the "StockGraph.class" executable as an applet
Java applets • Java application executes from a command window • an applet is a Java program that runs in the appletviewer or in a Web browser • The appletviewer (or browser) executes an applet when a HTML document containing the applet is opened in the appletviewer (or browser).
Applets in Code Warrior • Start a new project in CW • choose java stationary and applet (in a window jdk1.3) • Project with three source files: TrivialApplet.java, TrivialApplet.html and TrivialAppletDebug.html • Open the java file. • import java.awt.*; • import java.applet.Applet; • We import objects from two packages which supports graphical user interface: AWT (abstract windowing tool). There is a newest version of class Applet called JApplet, from the new package java.swing (SWING is built on awt and exdends its capabilities).
Applets in Code Warrior • We import objects from two packages which supports graphical user interface: • AWT (abstract windowing tool). • the new package java.swing (SWING is built on awt and exdends its capabilities) • public class TrivialApplet extends Applet The extends keyword followed by a class name indicates the class (in this case Applet) from which our new class inherits existing pieces. In this inheritance relationship, Applet is called the superclass or base class and TrivialApplet is called the subclass or derived class. We will discuss inheritance in detail later. Using inheritance a new class TrivialApplet has the data and methods of the Applet class as well as the new features, like a method paint(), which overrides Applet's method paint(). • three methods init, start and paint that are guaranteed to be called automatically for you when any applet begins execution. • called exactly in that order
init, start methods • init • public void init() • Called by the browser or applet viewer to inform this applet that it has been loaded into the system. It is always called before the first time that the start method is called. A subclass of Applet should override this method if it has initialization to perform. • start • public void start() • Called by the browser or applet viewer to inform this applet that it should start its execution. It is called after the init method and each time the applet is revisited in a Web page. A subclass of Applet should override this method if it has any operation that it wants to perform each time the Web page containing it is visited. For example, an applet with animation might want to use the start method to resume animation, and the stop method to suspend the animation.
init, start and paint methods • The appletviewer or browser expects each of these methods to be defined so it can provide a consistent start-up sequence for an applet. • Some sample code import java.awt.*; import java.applet.Applet; public class test extends Applet { // Initialize the applet public void init() { } // Paint graphics on the screen public void paint(Graphics g) { g.drawString( "Hello World!!!", 30, 30 ); } }
drawString method • The first argument to drawString is the string to draw • The last two arguments in the list, 30 and 30, are the coordinates at which the bottom-left corner of the string should be drawn in the applet's area on the screen • Coordinates are measured from the upper-left corner of the applet in pixels: first 30 (x-coordinate) is a number of pixel to the right, and the second parameter (y-coordinate) is number of pixel down.
Executing a Java Applet • provide an HTML text file that indicates which applet the appletviewer (or browser) should load and execute • <applet codebase="Java Classes" code="TrivialApplet.class" width=200 height=200></applet>
Java Resources • There is a large number of Java applet resources available to you. The best place to start is • http://java.sun.com/applets/index.html
Event Listeners • If a class want to respond to a user event, it must implement the interface (we will discuss interfaces in a few lectures) that deals with the event • These interfaces are called event listeners. • Each listener handles a specific kind of event • A sample of event listeners: • ActionListener - action event that generated by a user taking an action such as a click on a button. • AdjustmentListener - an event that generated when the componenet such as a scrollbar is moved. • ItemListener - item event that generated when an item such as a check box has been changed.
Event Listeners • more sample event listeners: • KeyListener - keyboard event that occurs when a user types on a keyboard. • MouseListener - mouse event that generated by a mouse click. • MouseMotionListener - mouse event that generated by a mouse movement. • WindowListener - window event that generated by window move or adjustment.
an example of a proper class declaration: public class Foo extends Applet implements ActionListener, MouseListener { ... } • By making a class event listener you have to set up a specific type of event • You have to add a matching listener. • Once a component (a button, for example) is created you can add one of following methods associated with it:
Listener Methods • addActionListener() - Button, CheckBox, ComboBox, TextField, RadioButton. • addAdjustmentListener() - ScrollBar. • addItemListener() - Button, CheckBox, ComboBox, RadioButton. • addKeyListener() - all components. • addMouseListener() - all components. • addMouseMotionListener() - all components.
Names • names of the component may be different depending on which package you use • All above components are in AWT (import java.applet.Applet; ) • In the new package SWING (import javax.swing.JApplet; ), all above components have the capital letter J in front: JButton, JCheckBox and so on.
An Example • create a button and associate an action event listener • JButton b = new JButton("give him a name"); • b.addActionListener(this); • The ActionListener interface contains only one method actionPerformed() • public void actionPerformed(ActionEvent e) { //what to do when a user //clicks the button? }
Example • public void actionPerformed(ActionEvent e) { if (e.getSource() == buttonOne) ... else ... } • If you have more than one componenet has an event listener, you have to figure out which one does what. • The class ActionEvent (a parameter in actionPerformed()) has a method getSource() which can help to determine which component generated the event.