41
24.1 Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet and network communications In the Java chapters, we discuss Graphics (and graphical user interfaces [GUI] ) Multimedia Event-driven programming Free implementation at http://java.sun.com

24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

Embed Size (px)

Citation preview

Page 1: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.1 Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for

experience programmers Language of choice for Internet and network

communications In the Java chapters, we discuss

Graphics (and graphical user interfaces [GUI] ) Multimedia Event-driven programming Free implementation at http://java.sun.com

Page 2: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.2 Basics of a Typical Java Environment Java Systems

Consist of environment, language, Java Applications Programming Interface (API), Class libraries

Java programs have five phases Edit

Use an editor to type Java program vi or emacs, notepad, Jbuilder, Visual J++ .java extension

Compile Translates program into bytecodes, understood by

Java interpreter javac command: javac myProgram.java Creates .class file, containing bytecodes

(myProgram.class)

Page 3: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.2 Basics of a Typical Java Environment (II)

Java programs have five phases (continued) Loading

Class loader transfers .class file into memory Applications - run on user's machine Applets - loaded into Web browser, temporary

Classes loaded and executed by interpreter with java commandjava Welcome

HTML documents can refer to Java Applets, which are loaded into web browsers. To load,

appletviewer Welcome.html appletviewer is a minimal browser, can only

interpret applets

Page 4: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.2 Basics of a Typical Java Environment (II)

Java programs have five phases (continued) Verify

Bytecode verifier makes sure bytecodes are valid and do not violate security

Java must be secure - Java programs transferred over networks, possible to damage files (viruses)

Execute Computer (controlled by CPU) interprets program one

bytecode at a time Performs actions specified in program

Program may not work on first try Make changes in edit phase and repeat

Page 5: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

Program is created in

the editor and stored on disk.

Compiler creates

bytecodes and stores

them on disk.Class loader

puts bytecodes in

memory.

Bytecode verifier

confirms that all

bytecodes are valid

and do not violate

Java’s security restrictions.

Interpreter reads

bytecodes and translates them

into a language that

the computer can understand, possibly

storing data values as the program executes.

Phase 1

Phase 2

Phase 3

Phase 4

Phase 5

DiskEditor

Compiler

Class Loader

Disk

Disk

PrimaryMemory

.

.

.

.

.

.

PrimaryMemory

.

.

.

.

.

.

PrimaryMemory

.

.

.

.

.

.

Bytecode Verifier

Interpreter

Page 6: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.3 General Notes about Java and This Book

Java Powerful language Programming

Clarity - Keep it Simple Portability - Java portable, but it is an elusive goal

Some details of Java not covered http://java.sun.com for documentation

Performance Interpreted programs run slower than compiled ones

Compiling has delayed execution, interpreting executes immediately

Can compile Java programs into machine code Runs faster, comparable to C / C++

Page 7: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.3 General Notes about Java and This Book (II)

Just-in-time compiler Midway between compiling and interpreting

As interpreter runs, compiles code and executes it

Not as efficient as full compilers Being developed for Java

Integrated Development Environment (IDE) Tools to support software development Several Java IDE's are as powerful as C / C++

IDE's

Page 8: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.4 A Simple Program: Printing a Line of Text

Application Program that runs using Java interpreter (discussed later)

Comments Java uses C-style // (preferred by Java programmers) Can also use /* ... */

1 // Fig. 24.2: Welcome1.java2 // A first program in Java

34 public class Welcome1 {

5 public static void main( String args[] )6 {

7 System.out.println( "Welcome to Java Programming!" );8 }

9 }

Page 9: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.4 A Simple Program: Printing a Line of Text (II)

public class Welcome1 { Begins class definition Every Java program has a user-defined class Use keyword (reserved word) class followed

by ClassName Name format - MyClassName Identifier - letters, digits, underscores, dollar signs, does not begin

with a digit, contains no spaces Java case sensitive

public - For Chapters 24 and 25, every class will be public

Later, discuss classes that are not (Chapter 26) Programmers initially learn by mimicking features. Explanations

come later.

When saving a file, class name must be part of file name

Save file as Welcome1.java

Page 10: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.4 A Simple Program: Printing a Line of Text (III)

Braces Body - delineated by left and right

braces Class definitions

public static void main( String args[] ) Part of every Java application

Program begins executing at main Must be defined in every Java application

main is a method (a function) void means method returns nothing

Many methods can return information Braces used for method body For now, mimic main's first line

Page 11: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.4 A Simple Program: Printing a Line of Text (IV)

System.out.println( "Welcome to Java Programming!" );

Prints string String - called character string, message string, string literal Characters between quotes a generic string

System.out - standard output object Displays information in command window

Method System.out.println Prints a line of text in command window When finished, positions cursor on next line

Method System.out.print As above, except cursor stays on line \n - newline

Statements must end with ;

Page 12: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.4 A Simple Program: Printing a Line of Text (V)

Executing the program javac Welcome1

Creates Welcome1.class (containing bytecodes) java Welcome1

Interprets bytecodes in Welcome1.class (.class left out in java command)

Automatically calls main

Output types Command window Dialog box / Windows

Page 13: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.4 A Simple Program: Printing a Line of Text (VI)

Packages Predefined, related classes grouped by directories on

disk All in directory java or javax, or subdirectories

Referred to collectively as the Java class library or the Java applications programming interface (Java API)

import - locates classes needed to compile program Class JOptionPane

Defined in package called javax.swing Contains classes used for a graphical user interface (GUI)

Facilitates data entry and data output import javax.swing.JOptionPane;

Page 14: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24.4 A Simple Program: Printing a Line of Text (VII)

Class JOptionPane Contains methods that display a dialog box

static method showMessageDialog First argument - null (more Chapter 29) Second argument - string to display

static methods Called using dot operator (.) then method name

JOptionPane.showMessageDialog(arguments);

exit - method of class System Terminates application, required in programs with GUIsSystem.exit( 0 );0 - normal exitnon-zero - signals that error occurred

Class System in package java.lang Automatically imported in every Java program

Page 15: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

15

Applets Programming

Enabling Application Delivery Via the Web

Page 16: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

16

Introduction

Applets are small Java programs that are embedded in Web pages.

They can be transported over the Internet from one computer (web server) to another (client computers).

They transform web into rich media and support the delivery of applications via the Internet.

Page 17: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

Introduction to Applets

Applets are applications that are deployed over the Internet Designed to run inside a browser Are embedded in HTML pages Core part of Java

Not are popular as they were (or forecasted to be) Patchy browser support Can be slow to download Macromedia Flash, etc. offer similar functionality

Page 18: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

Introduction to Applets

But do provides a number of benefits… Easy to deploy (“web components”) No need for installation or upgrades Provide more sophisticated functionality

than a web page/form Allow for proprietary client-server

protocols Re-use code from traditional applications Very secure

Page 19: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

The Rules for Applets

An applet cannot (usually) do the following: Cannot load libraries or define native

methods Cannot read or write files on the client Cannot make network connections except

to the server it came from Cannot start any program on the client Cannot read certain system properties Cannot ‘pretend’ to be a local application

Applet windows look different

Page 20: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

The Rules for Applets

Ensures that an applet cannot damage the client Otherwise opens potential for viruses, security

breaches, trojan horses, etc Applets are considered to be untrusted code

Rules are enforced by a Security Manager Installed by the JVM in the browser

The rules are known as a security policy Alternate policies can be used on request

But only if the user decides to trust the code

Page 21: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

21

Applet: Making Web Interactive and Application Delivery Media

HelloHello

Hello Java<app=“Hello”>

4

APPLET Development “hello.java”

AT SUN.COM

The Internet

hello.class AT SUN’S

WEB SERVER

2 31 5

Create Applettag in

HTMLdocument

Accessing from

Your Organisation

The browser createsa new

window and a new thread

and then runs the

code

Page 22: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

22

How Applets Differ from Applications

Although both the Applets and stand-alone applications are Java programs, there are certain restrictions are imposed on Applets due to security concerns:

Applets don’t use the main() method, but when they are load, automatically call certain methods (init, start, paint, stop, destroy).

They are embedded inside a web page and executed in browsers. They cannot read from or write to the files on local computer. They cannot communicate with other servers on the network. They cannot run any programs from the local computer. They are restricted from using libraries from other languages.

The above restrictions ensures that an Applet cannot do any damage to the local system.

Page 23: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

23

Building Applet Code: An Example

//HelloWorldApplet.javaimport java.applet.Applet;import java.awt.*;

public class HelloWorldApplet extends Applet { public void paint(Graphics g) { g.drawString ("Hello World of Java!",25,

25); }}

Page 24: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

24

Embedding Applet in Web Page

<HTML>

<HEAD><TITLE> Hello World Applet</TITLE></HEAD>

<body><h1>Hi, This is My First Java Applet on the Web!</h1><APPLET CODE="HelloWorldApplet.class" width=500 height=400></APPLET></body>

</HTML>

Page 25: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

25

Accessing Web page (runs Applet)

Page 26: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

26

Applet Life Cycle

Every applet inherits a set of default behaviours from the Applet class. As a result, when an applet is loaded, it undergoes a series of changes in its state. The applet states include: Initialisation – invokes init() Running – invokes start() Display – invokes paint() Idle – invokes stop() Dead/Destroyed State – invokes destroy()

Page 27: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

27

Applet States

Initialisation – invokes init() – only once Invoked when applet is first loaded.

Running – invokes start() – more than once For the first time, it is called automatically by the system

after init() method execution. It is also invoked when applet moves from idle/stop() state

to active state. For example, when we return back to the Web page after temporary visiting other pages.

Display – invokes paint() - more than once It happens immediately after the applet enters into the

running state. It is responsible for displaying output. Idle – invokes stop() - more than once

It is invoked when the applet is stopped from running. For example, it occurs when we leave a web page.

Dead/Destroyed State – invokes destroy() - only once This occurs automatically by invoking destroy() method

when we quite the browser.

Page 28: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

28

Applet Life Cycle Diagram

Born

Running Idle

Dead

Begininit()

start()

paint()

stop()

start()destroy()

End

Page 29: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

29

Passing Parameters to Applet

<HTML>

<HEAD><TITLE> Hello World Applet</TITLE></HEAD>

<body><h1>Hi, This is My First Communicating Applet on the Web!</h1><APPLET CODE="HelloAppletMsg.class" width=500 height=400> <PARAM NAME="Greetings" VALUE="Hello Friend, How are you?"></APPLET>

</body>

</HTML>

Page 30: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

30

Applet Program Accepting Parameters

//HelloAppletMsg.javaimport java.applet.Applet;import java.awt.*;

public class HelloAppletMsg extends Applet {

String msg;

public void init(){

msg = getParameter("Greetings");if( msg == null)

msg = "Hello";}public void paint(Graphics g) {

g.drawString (msg,10, 100);}

} This is name of parameter specified in PARAM tag;This method returns the value of paramter.

Page 31: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

31

HelloAppletMsg.html

Page 32: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

32

What happen if we don’t pass parameter? See

HelloAppletMsg1.html<HTML>

<HEAD><TITLE> Hello World Applet</TITLE></HEAD>

<body><h1>Hi, This is My First Communicating Applet on the Web!</h1><APPLET CODE="HelloAppletMsg.class" width=500 height=400></APPLET>

</body>

</HTML>

Page 33: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

33

getParameter() returns null. Some default value may be used.

Page 34: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

34

Displaying Numeric Values

//SumNums.javaimport java.applet.Applet;import java.awt.*;

public class SumNums extends Applet {public void paint(Graphics g) {

int num1 = 10;int num2 = 20;int sum = num1 + num2;

String str = "Sum: "+String.valueOf(sum); g.drawString (str,100, 125);

}}

Page 35: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

35

SunNums.html

<HTML>

<HEAD><TITLE> Hello World Applet</TITLE></HEAD>

<body><h1>Sum of Numbers</h1><APPLET CODE="SumNums.class" width=500 height=400></APPLET></body>

</HTML>

Page 36: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

36

Applet – Sum Numbers

Page 37: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

37

Interactive Applets

Applets work in a graphical environment. Therefore, applets treats inputs as text strings.

We need to create an area on the screen in which use can type and edit input items.

We can do this using TextField class of the applet package.

When data is entered, an event is generated. This can be used to refresh the applet output based on input values.

Page 38: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

38

Interactive Applet Program..(cont)

//SumNumsInteractive..javaimport java.applet.Applet;import java.awt.*;

public class SumNumsInteractive extends Applet {TextField text1, text2;public void init(){

text1 = new TextField(10);text2 = new TextField(10);text1.setText("0");text2.setText("0");add(text1);add(text2);

}public void paint(Graphics g) {

int num1 = 0;int num2 = 0;int sum;String s1, s2, s3;

g.drawString("Input a number in each box ", 10, 50);try {

s1 = text1.getText();num1 = Integer.parseInt(s1);s2 = text2.getText();num2 = Integer.parseInt(s2);

}catch(Exception e1){}

Page 39: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

39

Interactive Applet Program.

sum = num1 + num2;String str = "THE SUM IS: "+String.valueOf(sum);

g.drawString (str,100, 125);}public boolean action(Event ev, Object obj){

repaint();return true;

}}

Page 40: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

40

Interactive Applet Execution

Page 41: 24.1Introduction Java Powerful, object-oriented language Fun to use for beginners, appropriate for experience programmers Language of choice for Internet

41

Summary

Applets are designed to operate in Internet and Web environment. They enable the delivery of applications via the Web.

This is demonstrate by things that we learned in this lecture such as: How do applets differ from applications? Life cycles of applets How to design applets? How to execute applets? How to provide interactive inputs?