// this is the shell template. // PROGRAM COMMENTS FOLLOW // THIS SHELL ACTUALLY COMPILES AND RUNS. // BUILD ON IT, MAKING BACKUP COPIES AS YOU PROGRAM. // CIS 790 L.A.T.T.C PROF. AUCIELLO // Programmed by Joseph Auciello, CIS Professor, LA Trade Technical College. // astr2jav.html /* [STARTS BLOCK COMMENT] [MORE COMMENTS GO HERE] Topics: 1. declaring an indexable string. 2. 'str.length()' = length function. 3. 'str.charAt' = substring pointer. 4. 'str.substring(11,17)' returns "winter" */ // ENDS BLOCK COMMENT // ............................................................... // LINKS TO LIBRARIES FOLLOW [IF NOT SURE, USE ALL THE LINKS.] import corejava.*; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.Font; import java.awt.Color; import java.lang.String; import java.net.*; import java.util.*; // ............................................................... // MAIN BODY OF PROGRAM STARTS // PROGRAM APPLET IS NAMED (astr2) public class astr2 extends Applet // DEFINE TEXT INPUT FIELDS, BUTTONS, integers (ALL GLOBAL VARIABLES) { TextField inputField1, inputField2, inputField3, inputField4, inputField5; Button button1; // ...... button. int i = 1; // START() PROCEDURE RUNS INITIALLY. // SET UP INPUT FIELDS. public void start() { Label namelabel1 = new Label("Enter String s1:",Label.RIGHT); add (namelabel1); // def and add label. inputField1 = new TextField(16); // create, add, and add (inputField1); // initialize input field1. inputField1.setText("ABC's of Strings"); Label namelabel2 = new Label("Index position:",Label.RIGHT); add (namelabel2); // def and add label. inputField2 = new TextField(4); // create, add, and add (inputField2); // initialize input field1. inputField2.setText("0"); // ...................... // SET UP BUTTON button1 = new Button("Click Here"); // def button. add(button1); } // end init() // .............................................................. // IN AN APPLET PROGRAM, 'PAINT' IS THE MAIN PROCEDURE. public void paint(Graphics g) // SET UP FONTS, COLORS, INITIAL ACTIONS. { Font fonts1 = new Font("Helvetica",Font.BOLD,16); g.setFont(fonts1); g.setColor(new Color(255,25,245)); // base color g.drawString("A STRING IS AN ADDRESSABLE ARRAY SET OF CHARACTERS.",10,226); // TRY [block of code] CATCH [error processing block of code] // FORM THE 'GUTS' OF THE MAIN 'PAINT' PROCEDURE. // THESE STATEMENTS READ FROM THE TEXT INPUT FIELDS // AND CONVERT TO STRING OR INTEGERS OR CHARS AS NECESSARY. // VARIABLES DEFINED WITHIN THIS PROCEDURE ARE LOCAL // TO THIS PROCEDURE, OF COURSE. try { String s1 = inputField1.getText(); int l1 = s1.length(); String s2 = inputField2.getText(); int int1 = Integer.parseInt(s2); // THESE ARE OUTPUT STATEMENTS. // NOTE '+' OPERATOR. g.drawString("String s1 = " + s1,20,74); g.drawString("s1.length() = " + l1, 20,88); g.drawString("s1.charAt(" + int1 + ") = " + s1.charAt(int1), 20,102); g.drawString("s1.toUpperCase() = " + s1.toUpperCase(),20,144); g.drawString("s1.toLowerCase() = " + s1.toLowerCase(),20,158); } // ERROR-TRAPPING FOLLOWS. catch (Exception e) { String err = e.toString(); g.drawString("In Error-Trapping Routine. ",20,265); g.drawString("" + err,20,277); } // catch } // end paint() // .............................................................. // PRESSING THE 'ENTER' KEY OR CLICKING 'ENTER' IS // CAPTURED AS AN EVENT BY THIS ROUTINE. // THIS ROUTINE ALLOWS PROCESSING TO CONTINUE WHEN // EITHERIS PUSHED OR THE BUTTON IS CLICKED. public boolean action(Event event, Object arg) { repaint(); return true; } } // end class // ===================== END OF PROGRAM =========================== FOLLOWING IS THE HTML THAT RUNS THIS APPLET. FIRST, YOU MUST COMPILE WITH 'JAVAC' AND CREATE A .CLASS OBJECT. THIS OBJECT IS INSERTED INTO THE HTML (SEE BELOW), AND RUN AS A LOCAL FILE BY A BROWSER (NETSCAPE OR EXPLORER).