Lab #1—Introduction to Java Applets and Applications

12
Lab 1 CS &141 ECC © Niko Čulevski 1 Lab #1—Introduction to Java Applets and Applications Objectives: Introduce Java’s two kinds of programs: applications and applets. Walkthrough the cycle of editing, compiling, debugging, and executing an application. Use the NetBeans IDE to create and execute a Java program. Note: Before you can compile and test your own Java applets you need two things: the Java j2se6.0 (or later) compiler and a Java-aware browser (Mozilla, Opera, Avant or IE will do). The Java compiler comes with quite a bit of documentation covering the language and the class hierarchies shipped with the language, and this documentation will be essential reference material for you. The compiler package also contains quite a bit of sample code that can also be useful. Problem Statement I: View an existing applet. 1. Locate with Windows Explorer the Fractal folder (you should have a copy of this folder and its content int Lab #1 Folder). 2. Open the Fractal folder (double-click on it or right-mouse it and select Open). 3. Double click on the example1.html file—voilá! Don’t worry at this stage what happened—all you need to know now is that the fractal applet written in Java is executing within a browser (Netscape, in this case—see below). For the curious, and impatient ones, Netscape is using its Java Virtual Machine program to interpret the bytecode of the compiled file CLSFractal.class.

Transcript of Lab #1—Introduction to Java Applets and Applications

Lab 1 CS &141

ECC © Niko Čulevski 1

Lab #1—Introduction to Java Applets and Applications

Objectives: � Introduce Java’s two kinds of programs: applications and applets.

� Walkthrough the cycle of editing, compiling, debugging, and executing an application.

� Use the NetBeans IDE to create and execute a Java program.

Note: Before you can compile and test your own Java applets you need two things: the

Java j2se6.0 (or later) compiler and a Java-aware browser (Mozilla, Opera, Avant or IE

will do). The Java compiler comes with quite a bit of documentation covering the language

and the class hierarchies shipped with the language, and this documentation will be

essential reference material for you. The compiler package also contains quite a bit of

sample code that can also be useful.

Problem Statement I: View an existing applet.

1. Locate with Windows Explorer the Fractal folder (you should have a copy of this folder

and its content int Lab #1 Folder).

2. Open the Fractal folder (double-click on it or right-mouse it and select Open).

3. Double click on the example1.html file—voilá! Don’t worry at this stage what

happened—all you need to know now is that the fractal applet written in Java is

executing within a browser (Netscape, in this case—see below). For the curious, and

impatient ones, Netscape is using its Java Virtual Machine program to interpret the

bytecode of the compiled file CLSFractal.class.

Lab 1 CS &141

ECC © Niko Čulevski 2

4. Select View and Page Source for the code. Again, don’t be concern about the details of

this HTML file; just notice the <applet> and </applet> tags for including a Java *.class

file.

<html>

<head>

<title>Fractals 1.1</title>

</head>

<body>

<h1>Fractals 1.1</h1>

<hr>

<applet codebase="." applet code="CLSFractal.class" width=500 height=120>

<param name=level value="5">

<param name=rotangle value="45">

<param name=succ1 value="F-F++F-F">

<param name=delay value="1000">

<param name=axiom value="F">

<param name=normalizescale value="true">

<param name=incremental value="true">

<param name=pred1 value="F">

<param name=border value="2">

<param name=startangle value="0">

alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the

applet, for some reason."

Your browser is completely ignoring the &lt;APPLET&gt; tag!

</applet>

<hr>

<a href="CLSFractal.java">The source</a>.

</body>

</html>

5. Repeat steps 1-4 for the TicTacToe.html file.

Lab 1 CS &141

ECC © Niko Čulevski 3

Problem Statement II: Create a Java application that displays “Hello World!” at the

command prompt using a simple text editor.

1. Open Notepad (Start, Programs, Accessories, Notepad) or any other text editor and type

the following code exactly as it appears below (pay attention to uppercase/lowercase,

punctuation, etc.):

public class HelloWorld { public static void main(String args[ ]) { System.out.println(“Hello, World!”); } }

2. Save your file with the name HelloWorld.java on drive C:\Temp or any other suitable

drive.

3. Open a DOS command window (Start, Run, cmd).

4. Change the directory to C:\Temp (or whatever drive you chose in step #2).

5. Compile your program by typing javac HelloWorld.java

6. If the compilation goes well, the system should respond within few seconds with

another prompt (and no errors!). Check your directory for the new file names

HelloWorld.class. This is the bytecode that the JVM will use to execute the program.

(Note that it is about four times the size of your source code.)

7. Execute the program by typing java HelloWorld

8. Troubleshooting. Here is a partial list of typical problems that prevent you from

completing steps 1-7 successfully.

Lab 1 CS &141

ECC © Niko Čulevski 4

• Syntax errors. You did not type the code exactly as specified. Check your code and

pay attention to every character—this includes lower/upper case, punctuation, etc.

Correct these errors, resave the file, recompile it and run it again.

• Don’t copy and paste the code above—you will get an error about the quotes (they

are not the same in Word and Notepad).

• File errors. The file name containing the code must be the same as the class name

with java extension, namely, HelloWorld.java (Java is case sensitive—pay

aqttention to capital letters). Make sure that the file HelloWorld.class shows up

in drive C:\Temp after the compilation.

• Path errors. If the operating system cannot execute javac it could be that the OS

does not know where it is installed (or the JDK was not installed correctly). You

might need to modify your system PATH variable to include C:\Program

Files\Java\jdk1.6.0_06\bin entry (or other version), assuming JDK was

installed on the C drive. You can verify the PATH by typing path at the DOS

prompt and you can add the C:\Program Files\Java\jdk1.6.0_06\bin to PATH by

typing at the command prompt

set path=C:\Program Files\Java\jdk1.6.0_06\bin;%path%

Problem Statement III: Create a Java applet that displays “Welcome to Java

Programming!” using the NetBeans IDE.

1. Create a java source file named Welcome.java and save it in a folder named Lab 1 in

C:\Temp\Lab 1. Here is the content of that file: /** A first program in Java

* Welcome.java

* @author nculevsk

* Created on April 4 27, 2009, 2:40 PM

*/

import java.applet.Applet; // import Applet class

import java.awt.Graphics; // import Graphics class

public class Welcome extends Applet

{

public void paint( Graphics g )

{

g.drawString( "Welcome to Java Programming!",25,25);

}

}

2. Start the NetBeans IDE: Start, Programs, NetBeans 6.8, NetBeans IDE (you should

also have a shortcut on the desktop).

Lab 1 CS &141

ECC © Niko Čulevski 5

3. Create a new project named Welcome Applet (select New->New Project, then select

Java in General Category and Java Project with Existing Sources in the Projects

category).

4. Click on Next and name the project Welcome Applet and select location for project

folder (C:\Temp\Lab 1 will do for now). Make sure the Set as Main Project check box

is not selected selected (we will with other projects). Click on Next.

5. Click on Add Folder and specify the folder where your source file Welcome.java is

located (for me, it’s in C:\Temp\Lab 1).

Lab 1 CS &141

ECC © Niko Čulevski 6

6. Leave this at default. Just click Finish.

Lab 1 CS &141

ECC © Niko Čulevski 7

7. Press Shift-F6 to run file (you have created a Main for this project, so you can’t run it

as a main project). Voilà!

8. Here is the content of the html file that NetBeans generates for you. (Note the

<APPLET> tag): <HTML> <HEAD> <TITLE>Applet HTML Page</TITLE> </HEAD> <BODY> <!-- *** GENERATED applet HTML launcher - DO NOT EDIT IN 'BUILD' FOLDER *** If you need to modify this HTML launcher file (e.g., to add applet parameters), copy it to where your applet class is found in the SRC folder. If you do this, the IDE will use it when you run or debug the applet. Tip: To exclude an HTML launcher from the JAR file, use exclusion filters in the Packaging page in the Project Properties dialog. For more information see the online help. --> <H3><HR WIDTH="100%">Applet HTML Page<HR WIDTH="100%"></H3> <P> <APPLET codebase="classes" code="Welcome.class" width=350 height=200></APPLET> </P> <HR WIDTH="100%"><FONT SIZE=-1><I>Generated by NetBeans IDE</I></FONT> </BODY> </HTML>

Lab 1 CS &141

ECC © Niko Čulevski 8

Problem Statement IV: Create a Java GUI application using NetBeans that provides

the user usage of Ohm’s Law formula. In electrical circuits, Ohm's law

states that the current through a conductor between two points is directly

proportional to the potential difference or voltage across the two points,

and inversely proportional to the resistance between them, provided that

the temperature remains constant.

The mathematical equation that describes this relationship is:

R

VI = or

I

VR = or RIV ⋅=

where V is the potential difference measured across the resistance in units of volts; I is the

current through the resistance in units of amperes and R is the resistance of the conductor

in units of ohms. More specifically, Ohm's law states that the R in this relation is constant,

independent of the current.

The law was named after the German physicist Georg Ohm, who, in a treatise published in

1827, described measurements of applied voltage and current through simple electrical

circuits containing various lengths of wire. He presented a slightly more complex equation

than the one above to explain his experimental results. The above equation is the modern

form of Ohm's law.

1. Start the NetBeans IDE: Start, Programs, NetBeans 6.8, NetBeans IDE (you should

also have a shortcut on the desktop).

2. Create a Java application project and name it Ohm’s Law.

a. Select File ->New Project.

b. In the New Project dialog, choose Java from Categories and Java Application

from Projects.

c. Name the project Ohm’s Law. Select C:\Temp for project location (or any other

location you want—you can copy the entire project folder to any other location

you want). Uncheck Create Main Class check box. Click on Finish.

3. NetBeans creates several folders and files for you (a build.xml and manifest.mf file).

You want to place the source file for your main class in the src folder. So open the

Lab 1 CS &141

ECC © Niko Čulevski 9

Source Package, highlight the <default package>, right-mouse on it, select New and

JFrame form.

4. Name the Class Name OhmsLaw (note: no apostrophe or space in

the name—it must be a valid Java identifier). Click on Finish. Java

creates the source file names OhmsLaw.java and a GUI file

OhmsLaw.form.

5. Build the form with controls from the Pallete so that it looks

somewhat like this:

a. You will need to bring a title JLabel from Swing Controls

from the Palette. The JLabel has an icon of Ohm’s formula (a

.png image to be provided).

b. The GUI contains a number of other JLabels, JTextFields, a

JPanel that contains 4 JButtons. There are a number of

different naming conventions for naming controls. I prefer

indicative name of the control followed by the type of

control. For example, currentJTextField.

6. Name all controls as indicated in the following screen capture:

Note that the GUI contains a JPanel named control JPanel which

has a GridLayout with 2 rows and 2 columns and which contains

the 4 JButtons. The Print JButton has been disabled (uncheck the

enabled poperty) for later implementation.

7. Double-click on the Calculate JButton—this should take you in

the Source code calculateJButtonActionPerformed method. Delete

the comment line and type the following code: // Calculate the current given voltage and resistance

DecimalFormat numberFormatter = new DecimalFormat("#,##0.0##");

float volts, resistance, current;

volts = Float.parseFloat(voltsJTextField.getText());

resistance = Float.parseFloat(resistanceJTextField.getText());

current = volts/resistance;

Lab 1 CS &141

ECC © Niko Čulevski 10

currentJTextField.setText(numberFormatter.format(current));

8. Add the statement import java.text.DecimalFormat; on the top

of the source code to enable the DecimalFormat class.

9. Double-click on the Clear button and add the following code: // Clear all text fields to reset the form

voltsJTextField.setText("");

resistanceJTextField.setText("");

currentJTextField.setText("");

voltsJTextField.requestFocus();

10. Double-click on the Quit button and add the following code: // Terminate teh application

System.exit(0);

11. Run the application by selecting Run->Run Main Project (F6)

and check your results with the following:

12. The program is not “goof-proof”. Try running it with illegal or

missing input, for example. Verification and validation as well as printing comes later.

Problem Statement V: Create a Java applet using a simple text editor that adds two

integers (you could keep adding more than two) and is viewed with the appletviewer.

1. Open Notepad or any other text editor (Start, Programs, Accessories, Notepad) and type

the following code exactly as it appears below (pay attention to uppercase/lowercase,

punctuation, etc. and don’t worry at this stage what it all means): // Addition program

import java.applet.Applet;

import java.awt.*; // import the java.awt package

import java.awt.event.*; // import the java.awt.event package

public class Addition extends Applet implements ActionListener

{

Label prompt; // message that prompts user to input

TextField input; // input values are entered here

int number; // variable that stores input value

int sum; // variable that stores sum of integers

// setup the graphical user interface components

// and initialize variables

public void init()

{

prompt = new Label( "Enter integer and press Enter:" );

add( prompt ); // put prompt on applet

input = new TextField( 10 );

add( input ); // put input TextField on applet

sum = 0; // set sum to 0

// "this" applet handles action events for TextField input

Lab 1 CS &141

ECC © Niko Čulevski 11

input.addActionListener( this );

}

// process user's action in TextField input

public void actionPerformed( ActionEvent e )

{

// get the number and convert it to an integer

number = Integer.parseInt( e.getActionCommand() );

sum = sum + number; // add number to sum

input.setText( "" ); // clear data entry field

showStatus( Integer.toString( sum ) ); // display sum

}

}

2. Save your file with the name Addition.java on drive C:\Temp.

3. Open a DOS command window (Start, Programs, Command Prompt).

4. Change the directory to C:\Temp.

5. Compile your program by typing javac Addition.java

6. If the compilation goes well, the system should respond within few seconds with

another prompt (and no errors!). Check your directory for the new file names

Addition.class. This is the bytecode that the JVM will use to execute the program.

7. Create the HMTL file in Notepad that contains the Addition.class applet and call it

Addition.html:

8. View the applet with appletviewer: at the DOS prompt type appletviewer

Addition.html.

Lab 1 CS &141

ECC © Niko Čulevski 12