CIS 790             JAVA SURVIVAL TRAINING       PROF. AUCIELLO



1.   COMPILE THIS PROGRAM.  CUT IT OUT BELOW AND PASTE IT
     INTO WRITE.

CUT BELOW THIS LINE.
======================================================

import java.awt.Graphics;      // req. for app & prog
import java.awt.*;

public class jst1 extends java.applet.Applet // req for app
  { public void paint(Graphics g)   // req for app
     { Font f10 = new Font("Sans Serif", Font.BOLD, 10);   // define Font
       g.setFont(f10);   // setFont is part of the graphics 'library'
                         // setFont is now 'linked' with the program.
       setBackground(Color.yellow);
       g.setColor(Color.red);
       g.drawString("I NEED TO SEE THIS MESSAGE DISPLAYED NOW, PLS!",10,100);
     }  // end paint method.
 } // end class.

===========================================
STOP CUTTING ABOVE THIS LINE.
===========================================

2.  CUT IT, AND PASTE IT NOW.
================================================


3.  COMPILE IT.  YOU MUST HAVE RESULTS THAT LOOK LIKE THIS:

NEXT, RUN THE COMPILER.  PLS BE SURE THAT jst1.java is external name
AND jst1  is the internal name.  ASK RIGHT NOW IF YOU DONT UNDERSTAND
THAT.

C:\Jdk1.1.2\bin>javac jst1.java


IF THERE ARE NO ERRORS, THEN IT COMPILED CORRECTLY.
THERE SHOULD NOT BE ANY ERRORS, BECAUSE YOU COPIED
AN EXISTING JAVA SOURCE PROGRAM.  IF YOU HAVE A 
COMPILER ERROR THAT YOU CAN NOT FIGURE OUT, ASK FOR
HELP RIGHT NOW!

YOU SHOULD HAVE THESE TWO FILES BELOW:  ASK FOR HELP IF
YOU DONT.

C:\Jdk1.1.2\bin>dir jst1.*

JST1~1   JAV           620  09-26-99  3:04a jst1.java
JST1~1   CLA           741  09-26-99  3:04a jst1.class
         4 file(s)          2,604 bytes
         0 dir(s)         688,128 bytes free


YOU SHOULD BE CLEAR THAT jst1.class was CREATED WHEN
jst1.java  GOT COMPILED.

NOTICE THE  4 LETTER EXTENSIONS AND THE lower case!


======================================================


4. PRINT THIS OUT,  AND TYPE jst1 IN RIGHT NOW. THAT'S RIGHT.
   BECAUSE OF INVISIBLE LETTERS, CASE PROBLEMS,
   PROBLEMS WITH EXTENSIONS, ETC,  JST MANDATES THAT
   YOU TYPE THIS PROGRAM IN WITH "WRITE".
   PLEASE EXPERIMENT AFTER THE MODEL IS WORKING, NOT BEFORE.



=========================================================

5. AFTER YOU TYPE IT,  CHANGE ITS NAME TO jst2.java
   (SO THAT YOU STILL HAVE A BACKUP -- YOU ARE IN
    SURVIVAL TRAINING SO YOU ARE NOT DUMB)

    HERE IS MY LISTING THAT I TYPED OUT (TO BE SURE)


// jst2.java

import java.awt.Graphics;      // req. for app & prog
import java.awt.*;

public class jst2 extends java.applet.Applet // req for app
  { public void paint(Graphics g)   // req for app
     { Font f10 = new Font("Sans Serif", Font.BOLD, 10);   // define Font
       g.setFont(f10);   // setFont is part of the graphics 'library'
                         // setFont is now 'linked' with the program.
       setBackground(Color.yellow);
       g.setColor(Color.red);
       g.drawString("I NEED TO SEE THIS MESSAGE DISPLAYED NOW, PLS!",10,150);
     }  // end paint method.
 } // end class.

=======================================================
6. NOW COMPILE IT AGAIN.  IMMED ASK FOR HELP IF IT DOES
   NOT COMPILE.

   DONT GO FURTHER, IF YOU DON'T HAVE A CLEAN COMPILE.

   PROVE THAT YOU HAVE  jst2.class  by looking at the Directory!

JST2~1   CLA           741  09-26-99  3:48a jst2.class
JST2~1   JAV           622  09-26-99  3:48a jst2.java
         2 file(s)          2,127 bytes
         0 dir(s)      15,646,720 bytes free


TRIPLE-CHECK YOUR WORK.  DONT TAKE CHANCES!

=========================================================

7.  COPY AND PASTE THE HTM CODE (BELOW) TO A NEW FILE CALLED
    'Jst2.html'

DONT CODE THE XMP -- THAT IS A SPECIAL HTML TAG.
  

<APPLET CODE="jst2.class" WIDTH=400 HEIGHT=300 IGNORE="">
</APPLET> 



     BE SURE THAT THE CLASS NAME IS jst2.class

     THIS ALLOWS 'Jst2.html TO BE READ BY THE BROWSER, WHICH
     INVOKES (CALLS)  jst2.class  (WHICH IS YOUR JAVA APPLET).

     ASK FOR HELP IMMED, IF YOU DONT GET THIS.

============================================================

8.  ACTIVATE  NETSCAPE.  LOAD AS A LOCAL FILE  'Jst2.html'

    ONLY LOAD THIS FILE, DONT ACCEPT SUBSTITUTIONS.  IT
    MUST BE SPELLED EXACTLY LIKE  'Jst2.html'  DONT LET
    NETSCAPE TRICK YOU!

C:\Jdk1.1.2\bin>dir J*.*
 
 Directory of C:\Jdk1.1.2\bin

JST2~1   HTM            71  09-26-99  3:34a Jst2.html

  DOUBLE-CHECK EVERYTHING, 3 TIMES, TAKE NO CHANCES!

  I AM LOADING NETSCAPE, THEN LOADING  Jst2.html     Good Luck!

.....

  I GOT THE MESSAGE DISPLAYED!  IT RAN.

(TAKE A 5 MIN BREAK)

=======================================================

9.  NOW WE ARE GOING TO PUT A PICTURE IN IT.
    PLS USE A GIF (CONVERT IF YOU HAVE TO).  MAKE SURE
    THE GIF IS IN THE SAME FOLDER, SPELLED EXACTLY
    LIKE THE ITS REFRENCE IN THE JAVA APPLET!

    WE HAVE  monica.gif         NOTE lower case LETTERS!

    I AM ADDING THE FOLLOWING LINE:  

         Image gifname270 = getImage(getDocumentBase(),"monica.gif");  

    AND A SECOND LINE:

         g.drawImage(gifname270, 400, 65, this);


     THESE ARE JAVA STATEMENTS THAT DEFINE THE IMAGE, AND
     DRAW IT AT  HORIZONTAL 100, VERTICAL 165.

     ASK FOR HELP IF YOU DONT UNDERSTAND THAT.

==================================================

10.      I AM INSERTING STATEMENTS INTO jst3.java 

// jst3.java
import java.awt.Graphics;      // req. for app & prog
import java.awt.*;

public class jst3 extends java.applet.Applet // req for app
  { public void paint(Graphics g)   // req for app
     { Font f10 = new Font("Sans Serif", Font.BOLD, 10);   // define Font
       g.setFont(f10);   // setFont is part of the graphics 'library'
                         // setFont is now 'linked' with the program.
       setBackground(Color.yellow);
       g.setColor(Color.red);
       Image gifname270 = getImage(getDocumentBase(),"monica.gif"); 
       g.drawImage(gifname270, 400, 65, this);
       g.drawString("I NEED TO SEE THIS MESSAGE DISPLAYED NOW, PLS!",10,100);
       
     }  // end paint method.
 } // end class.


========================================

11.  TRIPLE-CHECK TIME AGAIN.

     HERE IS THE DIRECTORY:

C:\Jdk1.1.2\bin>dir jst3.*


JST3     JAV           745  09-26-99  4:05a JST3.JAV
JST3~1   JAV           745  09-26-99  4:05a jst3.java
JST3     HTM            71  09-26-99  4:06a JST3.HTM
         3 file(s)          1,561 bytes
         0 dir(s)       4,505,600 bytes free

NOTE ONLY THE LAST 2 WILL DO YOU ANY GOOD!


NOTE THERE IS NO   jst3.class    WHICH MEANS THAT I HAVE
TO COMPILE!

COMPILED IT.  GOT THE CLASS.  READY TO TEST!
WILL MONICA'S PICTURE APPEAR?

=========================================

12.   MORE TRIPLE-CHECKING

      BE SURE THE FOLLOWING ARE IN YOUR DIRECTORY:


C:\Jdk1.1.2\bin>DIR JST3.*

 Directory of C:\Jdk1.1.2\bin

JST3~1   JAV           745  09-26-99  4:05a jst3.java
JST3~1   CLA           985  09-26-99  4:10a jst3.class
JST3~1   HTM            71  09-26-99  4:06a Jst3.html
         5 file(s)          2,617 bytes
         0 dir(s)         786,432 bytes free


THEN MAKE SURE THAT  Jst3.html  refers to jst3.class   !!!

C:\Jdk1.1.2\bin>type Jst3.html



<APPLET CODE="jst3.class" WIDTH=400 HEIGHT=300 IGNORE="">
</APPLET>




IT DOES.  SWITCH TO NETSCAPE.  LOAD  Jst3.html

STAND BY!

WORKS!    (200 POINTS TO HERE)

NOTE: WHEN USING NETSCAPE,  IT IS BEST TO EXIT NETSCAPE,
      THEN RELOAD THE FILE FRESH, ELSE IT TAKES IT FROM THE
      BUFFER.

================================

13.  GET BOLD, AND TRY TO INSERT  LOOP.

     CALL IT  jst4.java


public class jst4 extends java.applet.Applet 
  { public void paint(Graphics g)   
     { int red = 20; int x=1; int xxx = 0;   // very important!!!
       Font f10 = new Font("Sans Serif", Font.BOLD, 10);  
       g.setFont(f10);  
       setBackground(Color.yellow);
       g.setColor(Color.red);
       Image gifname270 = getImage(getDocumentBase(),"monica.gif"); 
       g.drawImage(gifname270, 400, 65, this);
       g.drawString("I NEED TO SEE THIS MESSAGE DISPLAYED NOW, PLS!",10,100);

       while (x<11)
         { g.setFont(f10);
           g.drawString("This is helping me to understand loops --"+ x + " iteration.",10,red*10);
           repaint();
           red += 1;
           x   += 1;
           while (xxx < 50000)
             {xxx += 1;}
              xxx = 0;
         }  // end while loop.
     }  // end paint method.
 } // end class.


NOTE:  GET THIS LOOP INTO THE APPLET.   NAME IT  jst4.java. PROCEED.
       DEFINE VARIABLES!
=====================================================

14.  COMPILE IT.


=====================================================

15.  THIS IS THE RESULT TO HERE.

 
================================ 16. FOLLOWING THE PRINCIPLE OF BUILDING ON SUCCESS, LOAD jst5.java and save it as jst6.java. Note: I just added a lot of links to the class library. import java.awt.*; import java.awt.Graphics; import java.applet.*; import java.applet.Applet; import java.awt.Color; // color import java.awt.event.*; import java.awt.Font; // font import java.awt.image.*; // req for images. import java.lang.Math; import java.util.Date; import java.util.Random; import java.util.*; public class jst6 extends java.applet.Applet { TextField textField1; // <--- added String name; // <---- added/ public void init() { Label namelabel1 = new Label(" Enter Your Name ",Label.RIGHT); add(namelabel1); textField1 = new TextField(15); add(textField1); // add textfield to structure if (name == null) name = "Harvey"; } // end init method public void paint(Graphics g) { Font f10 = new Font("Sans Serif", Font.BOLD, 10); int red=0; int xxx=0; int x=0; // <---- very important!! g.setFont(f10); setBackground(Color.yellow); g.setColor(Color.red); Image gifname270 = getImage(getDocumentBase(),"monica.gif"); g.drawImage(gifname270, 100, 140, this); g.drawString("I NEED TO SEE THIS MESSAGE DISPLAYED NOW, PLS!",10,130); while (x<11) { g.setFont(f10); g.drawString("This is helping me to understand loops --"+ x + " iteration.",10,red*10); repaint(); red += 1; x += 1; while (xxx < 250000) {xxx += 1;} xxx = 0; } // end while loop. } // end paint method. } // end class. MODIFY THIS PROGRAM SO THAT IT ACCEPTS A NAME FROM THE KEYBOARD, AND DISPLAYS IT. HERE IS A LIVE 'RUNNING' OF JST6.HTM (calling jst6.java)
HAVE WE DISPLAYED TEXT      TO THE SCREEN?
                  GRAPHICS  ............ ?
        MADE A 10 ITERATION LOOP         ?
        PROMPTED FOR AND DISPLAYED NAME  ?

====================================

17.  HOW ABOUT ADDING MUSIC?

(600 points to reach this point with music.)     
    
Here's the code for music ....


<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="HT Create v1.3">
<TITLE>MUSIC FOR AUCIELLO'S CLASS</TITLE>
</HEAD>

<BODY>
<!-- START MUSIC CONTROL FOR EXPLORER & NETSCAPE -->
<CENTER>
  <OBJECT>
    <EMBED SRC="polonase.mid" AUTOSTART="TRUE" LOOP="TRUE"
     MASTERSOUND CONTROLS=SMALLCONSOLE HEIGHT=25 WIDTH=140>
  </OBJECT><BR>
</CENTER>
<!-- END MUSIC CONTROL FOR EXPLORER & NETSCAPE -->
</BODY>


STARTING MUSIC PLAYER ...





MUSIC FOR AUCIELLO'S CLASS