470 likes | 1.32k Views
Java Applets. Objective: Learn how to develop Java programs that interact with users through a Web browser. Java Applet Lifecycle Methods. init ( ) Called when applet is loaded onto user’s machine. Prep work or one-time-only work done at this time. start ( )
E N D
Java Applets Objective: Learn how to develop Java programs that interact with users through a Web browser CS423 (cotter)
Java Applet Lifecycle Methods • init ( ) • Called when applet is loaded onto user’s machine. Prep work or one-time-only work done at this time. • start ( ) • Called when applet becomes visible (page called up). Called every time applet becomes visible. • stop ( ) • Called when applet becomes hidden (page loses focus). • destroy ( ) • Guaranteed to be called when browser shuts down. CS423 (cotter)
Applets vs. Applications • Extend Applet instead of Frame • Use of init( ) vs. constructor • No use of main( ) • Default layout managers • application: BorderLayout • applet: FlowLayout • Security CS423 (cotter)
Applet Presentation • Uses applet Tag in HTML <HTML> <TITLE> MyNewApplet </TITLE> <BODY> Here’s My first Applet <APPLET CODE = “MyNewApplet” WIDTH = 300 HEIGHT = 200> </APPLET> </BODY> </HTML> CS423 (cotter)
Applet Inheritance (extension) • Object - “cosmic base class” • Component - button, listBox • Container - dialog box • Panel - “sub-window”, group of buttons, etc. • Applet - small application, web enabled • MyApplet - specific instance of an applet CS423 (cotter)
MyTextApplet import java.applet.*; import java.awt.*; import java.awt.event.*; public class MyTextApplet extends Applet { public void init() { setBackground(Color.gray); Panel p = new Panel(); ButtonAction aButtonAction = new ButtonAction(); p.setLayout(new FlowLayout()); tickButton = new Button("Tick"); tickButton.addActionListener(aButtonAction); p.add(tickButton); CS423 (cotter)
MyTextApplet setButton = new Button("Set time"); setButton.addActionListener(aButtonAction); p.add(setButton); hourField = new TextField("12", 3); p.add(hourField); minuteField = new TextField("00", 3); p.add(minuteField); timeField = new TextField("", 12); p.add(timeField); add(p); } CS423 (cotter)
MyTextApplet Class ButtonAction implements ActionListener { public void actionPerformed(ActionEvent evt) { String buttoncommand = evt.getActionCommand(); if (buttoncommand.equals("Tick")) { int minutes = Integer.parseInt(minuteField.getText()); minutes += 1; String min = String.valueOf(minutes); minuteField.setText(min); } CS423 (cotter)
MyTextApplet else if (buttoncommand.equals("Set time")) { int hours = Integer.parseInt(hourField.getText()); int minutes = Integer.parseInt(minuteField.getText()); String tim = hourField.getText() + ":" + minuteField.getText(); timeField.setText(tim); } } } //end of ButtonAction private TextField hourField; private TextField minuteField; private TextField timeField; private Button tickButton; private Button setButton; } CS423 (cotter)
HTML file for MyTextApplet <HTML> <HEAD> <TITLE> My Text Applet Demo </TITLE> </HEAD> <BODY background="Image1.jpg"> <H1> Here's my Demo Applet </H1> <HR SIZE = 3> <APPLET CODE = MyTextApplet WIDTH = 300 HEIGHT = 100> </APPLET> </BODY> </HTML> CS423 (cotter)
MyTextApplet Output CS423 (cotter)
Parameter Passing to Applets import java.applet.*; import java.awt.*; public class FontApplet extends Applet { public void paint (Graphics g) { String fontName = getParameter ("font"); int fontSize = Integer.parseInt (getParameter("size")); Font f = new Font(fontName, Font.BOLD, fontSize); g.setFont (f); g.drawString("Welcome to CS423", 25, 50); } } CS423 (cotter)
HTML file for FontApplet <HTML> <TITLE> FontApplet </TITLE> <BODY background=“Image1.jpg”> Here’s a demo of parameter passing to an Applet <hr> <APPLET CODE = "FontApplet" WIDTH = 300 HEIGHT = 200> <PARAM NAME = font VALUE = "Helvetica"> <PARAM NAME = size VALUE = "24"> </APPLET> </BODY> </HTML> CS423 (cotter)
FontApplet.htm CS423 (cotter)
Using Applet Parameters in VJ++ CS423 (cotter)
Java Applet Lifecycle Methods(again...) • init ( ) • Called when applet is loaded onto user’s machine. Prep work or one-time-only work done at this time. • start ( ) • Called when applet becomes visible (page called up). Called every time applet becomes visible. • stop ( ) • Called when applet becomes hidden (page loses focus). • destroy ( ) • Guaranteed to be called when browser shuts down. CS423 (cotter)
LifecycleApplet.java import java.applet.Applet; import java.awt.Graphics; public class LifecycleApplet extends Applet { public LifecycleApplet() { System.out.println("Constructor running..."); } public void init() { System.out.println("This is init."); } public void start() { System.out.println("Applet started."); } public void paint(Graphics theGraphics) { theGraphics.drawString("Hello, World!", 0, 50); System.out.println("Applet just painted."); } public void stop() { System.out.println("Applet stopped."); } public void destroy() { System.out.println("Applet destroyed."); } } CS423 (cotter)
LifecycleApplet.java CS423 (cotter)
LifecycleApplet.java CS423 (cotter)
Summary • Java Applet managed through applet lifecycle • Applet can interact with browser through HTML code • Uses Event programming model to interact with user (using buttons, textfields, etc.) CS423 (cotter)