The Basic Java Applet and JApplet



Similar documents
Here's the code for our first Applet which will display 'I love Java' as a message in a Web page

How To Write A Program For The Web In Java (Java)

There are some important differences between an applet and a standalone Java application, including the following:

Introduction to Java Applets (Deitel chapter 3)

Java applets. SwIG Jing He

5.17 GUI. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

The Abstract Windowing Toolkit. Java Foundation Classes. Swing. In April 1997, JavaSoft announced the Java Foundation Classes (JFC).

GUIs with Swing. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2012

INTRODUCTION TO COMPUTER PROGRAMMING. Richard Pierse. Class 7: Object-Oriented Programming. Introduction

CSC 551: Web Programming. Spring 2004

public class Craps extends JFrame implements ActionListener { final int WON = 0,LOST =1, CONTINUE = 2;

Programming with Java GUI components

Chapter 1 Java Program Design and Development

GUI Event-Driven Programming

Essentials of the Java Programming Language

method is never called because it is automatically called by the window manager. An example of overriding the paint() method in an Applet follows:

WEEK 2 DAY 14. Writing Java Applets and Java Web Start Applications

Essentials of the Java(TM) Programming Language, Part 1

CS 335 Lecture 06 Java Programming GUI and Swing

Java is commonly used for deploying applications across a network. Compiled Java code

Syllabus for CS 134 Java Programming

Reading and Understanding Java s API Documentation

Tutorial Reference Manual. Java WireFusion 4.1

Object Oriented Programming with Java. School of Computer Science University of KwaZulu-Natal

Fundamentals of Java Programming

Using A Frame for Output

Extending Desktop Applications to the Web

Packaging and Deploying Java Projects in Forte

Principles of Software Construction: Objects, Design and Concurrency. GUIs with Swing. toad Spring 2013

An Overview of Java. overview-1


Assignment # 2: Design Patterns and GUIs

Lab 1A. Create a simple Java application using JBuilder. Part 1: make the simplest Java application Hello World 1. Start Jbuilder. 2.

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

How to Convert an Application into an Applet.

TABLE OF CONTENTS...2 INTRODUCTION...3 APPLETS AND APPLICATIONS...3 JAVABEANS...4 EXCEPTION HANDLING...5 JAVA DATABASE CONNECTIVITY (JDBC)...

TATJA: A Test Automation Tool for Java Applets

SE 450 Object-Oriented Software Development. Requirements. Topics. Textbooks. Prerequisite: CSC 416

Illustration 1: An applet showing constructed responses in an intuitive mode. Note the misprint!

Interactive Programs and Graphics in Java

Glassfish, JAVA EE, Servlets, JSP, EJB

Lecture 5: Java Fundamentals III

Callbacks. Callbacks Copyright 2007 by Ken Slonneger 1

Applets, RMI, JDBC Exam Review

Event processing in Java: what happens when you click?

CaptainCasa. CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. Feature Overview

Graphical User Interfaces

Using Impatica for Power Point

Chain of Responsibility

Management Information Systems 260 Web Programming Fall 2006 (CRN: 42459)

Java History. Java History (cont'd)

11. Applets, normal window applications, packaging and sharing your work

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt

How To Program In Java (Ipt) With A Bean And An Animated Object In A Powerpoint (For A Powerbook)

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Programming in Access VBA

Java Interview Questions and Answers

To begin, visit this URL:

UML Class Diagrams (1.8.7) 9/2/2009

C# and Other Languages

CGI Programming. What is CGI?

How To Use The Command Pattern In Java.Com (Programming) To Create A Program That Is Atomic And Is Not A Command Pattern (Programmer)

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011

Tutorial: Time Of Day Part 2 GUI Design in NetBeans

Developing NFC Applications on the Android Platform. The Definitive Resource

The Web Web page Links 16-3

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

Microsoft PowerPoint Exercises 4

CSS 543 Program 3: Online Tic-Tac-Toe Game Professor: Munehiro Fukuda Due date: see the syllabus

An Overview of Oracle Forms Server Architecture. An Oracle Technical White Paper April 2000

Example. Represent this as XML

Java Mouse and Keyboard Methods

Autodesk Installation

Homework/Program #5 Solutions

Fachbereich Informatik und Elektrotechnik Java Applets. Programming in Java. Java Applets. Programming in Java, Helmut Dispert

CS506 Web Design and Development Solved Online Quiz No. 01

Hypercosm. Studio.

Demo: Controlling.NET Windows Forms from a Java Application. Version 7.3

LAB 1. Familiarization of Rational Rose Environment And UML for small Java Application Development

Eclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project.

Nexawebホワイトペーパー. Developing with Nexaweb ~ Nexaweb to Improve Development Productivity and Maintainability

Sendspace Wizard Desktop Tool Step-By-Step Guide

Object-Oriented Programming and Data Structures

Tutorial: Getting Started

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Introduction to IBM Digital Analytics Michigan.gov

For Introduction to Java Programming, 5E By Y. Daniel Liang

creating a text-based editor for eclipse

Java the UML Way: Integrating Object-Oriented Design and Programming

MEAP Edition Manning Early Access Program Hello! ios Development version 14

Using Karel with Eclipse

Swing. A Quick Tutorial on Programming Swing Applications

CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution

HP INTEGRATED ARCHIVE PLATFORM

Transcription:

I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s The Basic Java Applet and JApplet Rob Dempster robd@cs.ukzn.ac.za School of Computer Science University of KwaZulu-Natal Pietermaritzburg Campus I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.1/20

Abstract This is not a paper. It is the lecture presentation slides I used to provide a framework for the lectures I presented dealing with the material covered in Section 1 of Chapter 6 of David J. Eck s book entitled Introduction to Programming Using Java [1]. The slides were prepared using SuSE Linux, Emacs, LAT E Xand Prosper. c 2005, Robert Dempster. These are free slides. There are no restrictions on using or redistributing or posting on the web a complete, unmodified copy of this material. There are some restrictions on modified copies. To be precise: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no invariant sections, front cover text, or back cover text. The most recent version of these slides are always available, at no charge, for downloading and for on-line use at the Web address http://saturn.cs.ukzn.ac.za/ robd/javaslides/. There you will find the LAT E Xsource code together with the slides in formats suitable for slide presentations (.sp.) and hand-outs (.ho.). I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.2/20

Interfaces Introduction Java is a programming language designed for networked computers and the World Wide Web i.e., the design of distributed computing applications It contains many neat features to make this easy to do in a reliable and secure manner. Part of learning Java is learning to program applets and other Graphical User Interface (GUI) programs. GUI programs are event-driven. That is, user actions such as clicking on a button or pressing a key on the keyboard, generate events, and the program must respond to these events as they occur. Related to GUI programming is Human Computer Interaction (HCI). I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.3/20

The Basic Java Applet and JApplet Java applets are small programs that are meant to run on a page in a Web browser. However: An applet is not a complete program. It doesn t have to be small. There are other ways to use them. An applet is inherently part of a graphical user interface. It is a type of graphical component that can be displayed in a window which we will hereafter assume, belongs to a Web browser. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.4/20

The Basic Java Applet and JApplet (cont d) The Applet class, defined in the package java.applet, is really only useful as a basis for making subclasses. An object of type Applet has certain basic behaviours, but doesn t actually do anything useful. There are several methods in the Applet class that are defined to do nothing. The programmer must override at least some of these methods and give them something to do. An applet program does not contain a main() routine since it is not a stand-alone program. However, many of the methods in an applet are similar to main(), in that they are meant to be called by the system. It is the job of the programmer is to say what happens in response to these system calls. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.5/20

The Basic Java Applet and JApplet (cont d) One of the methods that is defined in the Applet class to do nothing is the paint() method. The paint() method is called by the system when the applet needs to be drawn. In a subclass of Applet, the paint() method can be redefined to draw various graphical elements such as rectangles, lines, and text on the applet. As a first example of an applet, let s go the traditional route and look at an applet that displays the string "Hello World!". I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.6/20

The Hello World Applet import java.awt.*; import java.applet.*; public class HelloWorldApplet extends Applet { // Applet displays the string Hello World! public void paint(graphics g) { } g.drawstring("hello World!", 10, 30); } // end of class HelloWorldApplet I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.7/20

The Hello World Applet - The Theory! The drawstring() method, defined in the Graphics class, actually does the drawing, using the Graphics (context) object referenced by g. Back to the applet: It is an object, but we have not created an object here. This of course begs the question: Then where does it come from? It is the web browser s responsibility to create the Applet object and add it to its browser window. Browsers execute html (a markup language) code that describes how a web page should be displayed. The instructions to the browser regarding the applet are contained in and by (surprise!!!) the <applet> markup tag. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.8/20

The Hello World Applet HTML code <center> <applet code="helloworldapplet.class" width=200 height=50> <p> If you do not see this applet, speak to your sysadm asap!! </p> </applet> </center> I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.9/20

The Hello World Applet - The Theory (cont d) The Applet class defines another method that is essential for programming applets, the init() method. This method is called just after the applet object has been created and before it appears on the screen. Its purpose is to give the applet a chance to do any necessary initialisation. Again, this method is called by the system, not by your program. You might be wondering why initialisation is done in the init() method rather than in a constructor. It is possible to define a constructor for your applet class, as the system calls the constructor that has no parameters. Unfortunately when the constructor is called, the size of the applet is not available. It is when init() is called. It is customary to do applet initialisation in the init() method. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.10/20

The second Hello World Applet import java.awt.*; import java.applet.*; public class HelloWorldApplet2 extends Applet { public void init() { setbackground(color.blue); setforeground(color.yellow); } public void paint(graphics g) { } g.drawstring("hello World!", 10, 30); } // end of class HelloWorldApplet2 I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.11/20

JApplets and Swing The AWT (Abstract Windowing Toolkit) has been part of Java from the beginning, but was not powerful or flexible enough for writing complex, sophisticated applications. This does not prevent it from being useful especially for applets, which are generally not as complex as full-scale, independent applications. The Swing graphical user interface library was created to address the problems with the AWT. The classes that make up the Swing library can be found in the package javax.swing. Swing includes the class javax.swing.japplet as a basis for writing applets. JApplet is a subclass of Applet, so JApplets are in fact also Applets. However, JApplets have a lot of extra structure that plain Applets don t have. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.12/20

A JApplet Example import javax.swing.*; // Swing GUI classes are defined here. import java.awt.event.*; // Event handling class are defined here. public class HelloSwing extends JApplet implements ActionListener { public void init() { JButton bttn = new JButton("Click Me!"); bttn.addactionlistener(this); getcontentpane().add(bttn); } // end init() public void actionperformed(actionevent evt) { String title = "Greetings"; // Shown in title bar of dialog box. String message = "Hello from the Swing User Interface Library."; JOptionPane.showMessageDialog(null, message, title, JOptionPane.INFORMATION_MESSAGE); } // end actionperformed() } // end class HelloSwing I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.13/20

JApplets and Swing - Some Notes First we instantiate a Button. Then we instruct the system to monitor the button for events by telling it to invoke this objects actioneperformed() method. Because our program is a JApplet it already has the content pane provided by the Browser. We then add the button to this content pane. The actioneperformed() method simply pops up a message dialog window containing an appropriate message. That is it - heaps and heaps of work done by the GUI API. Great code reuse!!!! I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.14/20

JApplets and Swing - Some More Notes In the previous example the applet itself listened for action events from the button The preferred practice is to create a separate object to listen for, and respond to, events. This is more object-oriented in the sense that each object has its own clearly defined area of responsibility. The most convenient way to make a separate event-handling object is to use a nested anonymous class. The next version of HelloSwing uses an anonymous inner class for event handling. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.15/20

Another JApplet Example import javax.swing.*; // Swing GUI classes are defined here. import java.awt.event.*; // Event handling class are defined here. public class HelloSwing2 extends JApplet { public void init() { JButton bttn = new JButton("Click Me!"); bttn.addactionlistener( new ActionListener() { public void actionperformed(actionevent evt) { String title = "Greetings"; // Shown in box s title bar. String message = "Another hello from Swing."; JOptionPane.showMessageDialog(null, message, title, JOptionPane.INFORMATION_MESSAGE); } // end actionperformed() }); getcontentpane().add(bttn); } // end init() } // end class HelloSwing2 I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.16/20

The Applet Tag and Modifiers The <APPLET> tag is used to add a Java applet to a Web page. This tag must have a matching </APPLET>. A required modifier named CODE gives the name of the compiled class file that contains the applet. If the class file is not located in the same directory with the HTML document containing it, then the modifier, CODEBASE must be used to specify the URL of the directory that contains the class file. If an applet uses a lot of.class files, pacckage all the.class files into a single.zip or.jar file. You have to specify the name of the archive file in an ARCHIVE modifier in the <APPLET> tag. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.17/20

Applet Parameters Applets can use applet parameters to customise their behaviour. Applet parameters are specified by using <PARAM> tags, which can only occur between an <APPLET> tag and the closing </APPLET>. The PARAM tag takes the form <PARAM NAME="param-name" VALUE="param-value"> An applet can use the predefined method getparameter() to check for parameters specified in PARAM tags. If you put anything besides PARAM tags between <APPLET> and </APPLET>, it will be ignored by any browser that supports Java. This allows for the inclusion of a message such as "Your browser doesn t support Java". This message will only appear in browsers that don t support Java. I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.18/20

A PARAM Example <APPLET code="showmessage.class" WIDTH=200 HEIGHT=50> <PARAM NAME="message" VALUE="Goodbye World!"> <p align=center>sorry, but your browser doesn t support Java!</p> </APPLET> String display; // Instance variable: message to be displayed. public void init() { String value; value = getparameter("message"); // Get message PARAM, if any. if (value == null) display = "Hello World!"; // default value else display = value; // Value from PARAM tag.... I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.19/20

References References [1] Introduction to Programming Using Java, Version 4, Eck, David J., URL: http://math.hws.edu/javanotes I2PUJ4 - Chapter 6 - Applets, HTML, and GUI s p.20/20