// CIS 790  PROF. AUCIELLO

// (100 POINTS) -- COMPLETE UNICODE/ASCII TABLE (DOWNLOAD)
// (100 POINTS) -- PUT THIS APPLET TOGETHER


// STEP 1.0   insert all library code.
// STEP 2.0   define a new class "a12" w. public access
// STEP 2.05  open major bracket for entire class.
// STEP 2.1   define 3 textfields for input.
// STEP 2.20  define "ver" as 140.
// STEP 2.21  define a start method w. open bracket.
// STEP 2.22  define, add, & set text for inputField0.
// STEP 2.23  define, add  & set text for inputField1 & inputField2.
// STEP 2.24  define and add button1.
// STEP 2.29  end start() method.

// STEP 3.0   define paint method.
// STEP 3.1   define, then set fonts, and set color.
// STEP 3.2   get text from 2 inputFields.
// STEP 3.3   take the 1st element of string "skey2", convert to character..
// STEP 3.4   convert 1st string to integer by parsing it.
// STEP 3.5   use 4 drawString statements to display output.
//            Note use of (int)char  and   char(int) statements!
// STEP 3.9   end paint() method.

// STEP 4.0   start boolean method that listens for "enter" or button-click.
// STEP 4.1   open bracket, repaint screen, return true, close bracket.

// STEP 5.0   close major bracket for class.




// CIS 790          CHARACTER CODES           PROF. AUCIELLO
// (f2c20.java)


import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.Graphics;
import java.awt.Font;
import java.awt.Color;
import java.awt.Image.*;
import java.lang.Double;
import java.lang.Integer;
import java.lang.Math;
import java.lang.String;
import java.text.*;
import java.util.Date;
import java.util.Random;
import java.util.*;


public class a12 extends Applet
{ // all definitions and initializations can go here.
   TextField inputField0,inputField1, inputField2;
   int currkey, ver = 140;

   public void start()
    
       Label namelabeldc = new Label("Decimal Code:  ",Label.RIGHT);
       add (namelabeldc);                    // def and add label.
       inputField1      = new TextField(14); // create, add, and
       add (inputField1);                   // initialize input field1.
       inputField1.setText("65");
 { inputField0      = new TextField(80);// create, add, and
       add (inputField0, inputField1);                   // initialize input field1.
       inputField0.setText(" CHARACTER CODES   JAVA  APPLET  PROGRAMMING  (CIS  790)   PROF.  J.  AUCIELLO");
     
       Label namelabelkbc = new Label("KB Character:  ",Label.RIGHT);
       add (namelabelkbc);                    // def and add label.
       inputField2      = new TextField(14);  // create, add, and
       add (inputField2);                     // initialize input field1.
       inputField2.setText("A");
                                             

     }
   // end start()

   public void paint(Graphics g)
     { Font fonts   = new Font("Helvetica",Font.BOLD,12);
       g.setFont(fonts);

       Button button1          = new Button("Start");  // def button.
       add(button1);
       g.setColor(new Color(25,25,245));  // base color
      
       String s1    = inputField1.getText();
       String skey2 = inputField2.getText();
       char   ckey2 = skey2.charAt(0); 
       int key1     = Integer.parseInt(s1);
       // System.out.println("key2  = " + (int)ckey2+ " ");

    public boolean action(Event evt, int key)
     {   currkey = key;
         repaint();
         return true;
     }        
        g.drawString("Click on the screen to start applet.", 10,10);
        g.drawString("Type Keyboard Character -- Note its Unicode (Decimal) Value: ",10,30);
        g.drawString("Unicode / Ascii Value (event trapping) " + currkey+ "  =  Character " + (char)currkey, 20,ver+20);
        g.drawString("Unicode / Ascii Value (text input)     " + (int)ckey2 + "  =  Character " + ckey2,     20,ver+40);;
        g.drawString("Unicode / Ascii Value (text input)     " + key1       + "  =  Character " + (char)key1,20,ver+60);;
        // System.out.println("key1 = " + key1 + " = Character " + (char)key1);
        g.drawString("" + (int)ckey2, 225,75);
        g.drawString("" + (char)key1, 400,75);    
     }  // end paint()


// The above procedure enables the "Start Button" (Action Listener)
// to operate.

}  // end class