package PackageOne; /*-------------------------------------------------------------------* * NTU Student: Java With Engineering Applications, Spring 1999 * Assignment # 1 - Java How To Program 2nd edition, Deitel & Deitel * Problem 1.20 on page 162 * * Michael Kusmierz * Xerox Corporation * Rev 1.0 Apr 9, 1999 * * This code represents a students work in progress * and is not to be used beyond that purpose. *-------------------------------------------------------------------*/ import java.applet.*; import java.awt.*; import java.awt.event.*; /** * This type was partially created in VisualAge. The GUI composition editor * was used. The result was more detailed object code blocks. * Note that ActionListener was implemented rather then KeyListener. * Therefore, extra code generated was left in for comparison purposes */ // public class Circle extends Applet implements KeyListener { public class Circle extends Applet implements ActionListener { Font font = new Font("Dialog", Font.BOLD, 14); String str = "Welcome to the three integer calculator 1.20"; int xPos = 5; private Label ivjLabel1 = null; private Label ivjlblInstructions = null; private Label ivjlblNumberA = null; private Label ivjlblNumberB = null; private Label ivjlblResults = null; private TextField ivjtxtFieldA = null; private TextField ivjtxtFieldB = null; private TextField ivjtxtFieldC = null; int number1, number2, number3; //store input values from txtFieldsA..C // Process user's action on the input "enter" of txtFieldC public void actionPerformed(ActionEvent e) { try { number1 = Integer.parseInt( ivjtxtFieldA.getText() ); number2 = Integer.parseInt( ivjtxtFieldB.getText() ); number3 = Integer.parseInt( ivjtxtFieldC.getText() ); showStatus("Type a new number ... then 'enter'"); repaint(); } catch (java.lang.Throwable ivjExc) { showStatus("---- Entry Error,try again ! -----"); } } /** * Returns information about this applet. * @return a string of information about this applet */ public String getAppletInfo() { return "Circle\n" + "\n" + "Using VisualAge and no GUI building option.\n" + "Problem 1.20 Write a Java applet that inputs three integers from the user at the keyboard and prints the\n" + "sum, average, product, smallest, and largest of these numbers. Use the GUI techniques shown in Fig. 1.13\n" + ""; } /** * Return the Label1 property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private Label getLabel1() { if (ivjLabel1 == null) { try { ivjLabel1 = new java.awt.Label(); ivjLabel1.setName("Label1"); ivjLabel1.setText("and another, then Enter"); ivjLabel1.setBounds(54, 96, 147, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjLabel1; } /** * Return the lblInstructions property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private Label getlblInstructions() { if (ivjlblInstructions == null) { try { ivjlblInstructions = new java.awt.Label(); ivjlblInstructions.setName("lblInstructions"); ivjlblInstructions.setFont(new java.awt.Font("dialog", 1, 12)); ivjlblInstructions.setText("Enter three integers:"); ivjlblInstructions.setBounds(23, 19, 150, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjlblInstructions; } /** * Return the lblNumberA property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private Label getlblNumberA() { if (ivjlblNumberA == null) { try { ivjlblNumberA = new java.awt.Label(); ivjlblNumberA.setName("lblNumberA"); ivjlblNumberA.setText("Enter an Integer ..."); ivjlblNumberA.setBounds(54, 45, 141, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjlblNumberA; } /** * Return the lblNumberB property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private Label getlblNumberB() { if (ivjlblNumberB == null) { try { ivjlblNumberB = new java.awt.Label(); ivjlblNumberB.setName("lblNumberB"); ivjlblNumberB.setText("Enter another ..."); ivjlblNumberB.setBounds(54, 70, 143, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjlblNumberB; } /** * Return the lblResults property value. * @return java.awt.Label */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private Label getlblResults() { if (ivjlblResults == null) { try { ivjlblResults = new java.awt.Label(); ivjlblResults.setName("lblResults"); ivjlblResults.setFont(new java.awt.Font("dialog", 1, 12)); ivjlblResults.setText("Results :"); ivjlblResults.setBounds(23, 125, 52, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjlblResults; } /** * Return the txtFieldA property value. * @return java.awt.TextField */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private TextField gettxtFieldA() { if (ivjtxtFieldA == null) { try { ivjtxtFieldA = new java.awt.TextField(); ivjtxtFieldA.setName("txtFieldA"); ivjtxtFieldA.setBounds(269, 49, 89, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjtxtFieldA; } /** * Return the txtFieldB property value. * @return java.awt.TextField */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private TextField gettxtFieldB() { if (ivjtxtFieldB == null) { try { ivjtxtFieldB = new java.awt.TextField(); ivjtxtFieldB.setName("txtFieldB"); ivjtxtFieldB.setBounds(269, 74, 89, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjtxtFieldB; } /** * Return the txtFieldC property value. * @return java.awt.TextField */ /* WARNING: THIS METHOD WILL BE REGENERATED. */ private TextField gettxtFieldC() { if (ivjtxtFieldC == null) { try { ivjtxtFieldC = new java.awt.TextField(); ivjtxtFieldC.setName("txtFieldC"); ivjtxtFieldC.setBounds(269, 99, 89, 23); // user code begin {1} // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } }; return ivjtxtFieldC; } /** * Called whenever the part throws an exception. * @param exception java.lang.Throwable */ private void handleException(Throwable exception) { /* Uncomment the following lines to print uncaught exceptions to stdout */ System.out.println("--------- UNCAUGHT EXCEPTION ---------"); exception.printStackTrace(System.out); showStatus("---- Entry Error,try again ! -----"); } /** * Initializes the applet. */ public void init() { super.init(); try { setName("Circle"); setLayout(null); setSize(400, 340); add(getlblInstructions(), getlblInstructions().getName()); add(getlblNumberA(), getlblNumberA().getName()); add(getlblNumberB(), getlblNumberB().getName()); add(getLabel1(), getLabel1().getName()); add(gettxtFieldA(), gettxtFieldA().getName()); add(gettxtFieldB(), gettxtFieldB().getName()); add(gettxtFieldC(), gettxtFieldC().getName()); // user code begin {1} /** Add an action listener to the users last field entry to * trigger calculation of results. */ ivjtxtFieldC.addActionListener( this ); // user code end } catch (java.lang.Throwable ivjExc) { // user code begin {2} // user code end handleException(ivjExc); } } /** CODE NOT USED * Called when a key has been pressed. * @param e the received event */ public void keyPressed(KeyEvent e) { System.out.println("keyPressed"); } /** CODE NOT USED * Called when a key has been released. * @param e the received event */ public void keyReleased(KeyEvent e) { System.out.println("keyReleased"); } /** CODE NOT USED * Called when a key has been typed. * @param e the received event */ public void keyTyped(KeyEvent e) { System.out.println("keyTyped"); } /** * main entrypoint - starts the part when it is run as an application * @param args java.lang.String[] */ public static void main(java.lang.String[] args) { try { Frame frame; try { Class aFrameClass = Class.forName("com.ibm.uvm.abt.edit.TestFrame"); frame = (Frame)aFrameClass.newInstance(); } catch (java.lang.Throwable ivjExc) { frame = new Frame(); } Circle aCircle; Class iiCls = Class.forName("PackageCircleA.Circle"); ClassLoader iiClsLoader = iiCls.getClassLoader(); aCircle = (Circle)java.beans.Beans.instantiate(iiClsLoader,"PackageCircleA.Circle"); frame.add("Center", aCircle); frame.setSize(aCircle.getSize()); frame.setVisible(true); } catch (Throwable exception) { System.err.println("Exception occurred in main() of java.applet.Applet"); exception.printStackTrace(System.out); } } /** * Draws the text on the drawing area. Displays the results. * @param g the specified Graphics window */ public void paint(Graphics g) { int iSum, iAverage, iProduct, iSmallest, iLargest; try { g.setFont(font); g.setColor(Color.black); g.drawString(str, xPos, 15); // ** Start calculations now g.drawString( "When A,B,C = " + number1 +", "+ number2 +", "+ number3+", results are as follows:", xPos, 200); iSum = number1 + number2 + number3; g.drawString("Sum=" + iSum, xPos, 220); iAverage = iSum / 3; g.drawString("Average=" + iAverage, xPos, 240); iProduct = number1 * number2 * number3; g.drawString("Product=" + iProduct, xPos, 260); if (number1 >= number2) { iLargest = number1; iSmallest = number2; } else { iLargest = number2; iSmallest = number1; } if (number3 >= iLargest) iLargest = number3; if (number3 <= iSmallest) iSmallest = number3; g.drawString("Smallest=" + iSmallest + ", Largest=" + iLargest, xPos, 280); } catch (java.lang.Throwable ivjExc) { g.drawString("---- Result Error,try again ! -----", xPos, 300); } } }