home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / SAMPLES.BIN / CalculateFrame.java < prev    next >
Encoding:
Java Source  |  1996-12-07  |  6.4 KB  |  213 lines

  1. /*
  2.     A basic extension of the java.awt.Frame class
  3.  */
  4.  
  5. import java.awt.*;
  6.  
  7. public class CalculateFrame extends Frame {
  8.     public boolean action(Event event, Object arg) {
  9.         if (event.target instanceof MenuItem) {
  10.             String label = (String) arg;
  11.             if (label.equalsIgnoreCase("&Divide")) {
  12.                 DivideButton_Clicked(event);
  13.                 return true;
  14.             } else
  15.             if (label.equalsIgnoreCase("&Multiply")) {
  16.                 MultiplyButton_Clicked(event);
  17.                 return true;
  18.             } else
  19.             if (label.equalsIgnoreCase("&Subtract")) {
  20.                 SubtractButton_Clicked(event);
  21.                 return true;
  22.             } else
  23.                 if (label.equalsIgnoreCase("&Add")) {
  24.                     AddButton_Clicked(event);
  25.                     return true;
  26.                 }
  27.         }
  28.         return super.action(event, arg);
  29.     }
  30.  
  31.     void DivideButton_Clicked(Event event) {
  32.         // to do: place event handler code here.
  33.         double quotient, num1, num2;
  34.  
  35.         try {
  36.             num1 = (Double.valueOf(textField1.getText())).doubleValue();
  37.             num2 = (Double.valueOf(textField2.getText())).doubleValue();
  38.         } catch (NumberFormatException e) { return; }
  39.  
  40.         if (num2 == 0) return;
  41.  
  42.         quotient = num1 / num2;
  43.  
  44.         if (quotient < 0) { AnswerField.setBackground(Color.red);  }
  45.         else              { AnswerField.setBackground(Color.lightGray); }
  46.  
  47.         AnswerField.setText(String.valueOf(quotient));
  48.     }
  49.  
  50.     void MultiplyButton_Clicked(Event event) {
  51.         // to do: place event handler code here.
  52.         double product, num1, num2;
  53.  
  54.         try {
  55.             num1 = (Double.valueOf(textField1.getText())).doubleValue();
  56.             num2 = (Double.valueOf(textField2.getText())).doubleValue();
  57.         } catch (NumberFormatException e) { return; }
  58.  
  59.         product = num1 * num2;
  60.  
  61.         if (product < 0) { AnswerField.setBackground(Color.red);  }
  62.         else             { AnswerField.setBackground(Color.lightGray); }
  63.  
  64.         AnswerField.setText(String.valueOf(product));
  65.     }
  66.  
  67.     void SubtractButton_Clicked(Event event) {
  68.         // to do: place event handler code here.
  69.         double diff, num1, num2;
  70.  
  71.         try {
  72.             num1 = (Double.valueOf(textField1.getText())).doubleValue();
  73.             num2 = (Double.valueOf(textField2.getText())).doubleValue();
  74.         } catch (NumberFormatException e) { return; }
  75.  
  76.         diff = num1 - num2;
  77.  
  78.         if (diff < 0) { AnswerField.setBackground(Color.red);  }
  79.         else          { AnswerField.setBackground(Color.lightGray); }
  80.  
  81.         AnswerField.setText(String.valueOf(diff));
  82.     }
  83.  
  84.     void AddButton_Clicked(Event event) {
  85.         // to do: place event handler code here.
  86.         double sum, num1, num2;
  87.  
  88.         try {
  89.             num1 = (Double.valueOf(textField1.getText())).doubleValue();
  90.             num2 = (Double.valueOf(textField2.getText())).doubleValue();
  91.         } catch (NumberFormatException e) { return; }
  92.  
  93.         sum = num1 + num2;
  94.  
  95.         if (sum < 0) { AnswerField.setBackground(Color.red);  }
  96.         else         { AnswerField.setBackground(Color.lightGray); }
  97.  
  98.         AnswerField.setText(String.valueOf(sum));
  99.     }
  100.  
  101.  
  102.     public CalculateFrame() {
  103.  
  104.         //{{INIT_CONTROLS
  105.         setLayout(null);
  106.         addNotify();
  107.         resize(insets().left + insets().right + 299,insets().top + insets().bottom + 261);
  108.         keyPressManagerPanel1 = new symantec.itools.awt.KeyPressManagerPanel();
  109.         keyPressManagerPanel1.setLayout(null);
  110.         keyPressManagerPanel1.reshape(insets().left + 0,insets().top + 0,299,261);
  111.         add(keyPressManagerPanel1);
  112.         keyPressManagerPanel1.setAutoTabState(true);
  113.         textField1 = new java.awt.TextField(8);
  114.         textField1.reshape(114,60,72,18);
  115.         keyPressManagerPanel1.add(textField1);
  116.         textField2 = new java.awt.TextField(8);
  117.         textField2.reshape(114,96,72,18);
  118.         keyPressManagerPanel1.add(textField2);
  119.         AnswerField = new java.awt.TextField(8);
  120.         AnswerField.setEditable(false);
  121.         AnswerField.disable();
  122.         AnswerField.reshape(114,138,72,18);
  123.         AnswerField.setBackground(Color.lightGray);
  124.         keyPressManagerPanel1.add(AnswerField);
  125.         AddButton = new java.awt.Button("+");
  126.         AddButton.reshape(216,60,24,18);
  127.         keyPressManagerPanel1.add(AddButton);
  128.         SubtractButton = new java.awt.Button("-");
  129.         SubtractButton.reshape(216,86,24,18);
  130.         keyPressManagerPanel1.add(SubtractButton);
  131.         MultiplyButton = new java.awt.Button("x");
  132.         MultiplyButton.reshape(216,112,24,18);
  133.         keyPressManagerPanel1.add(MultiplyButton);
  134.         DivideButton = new java.awt.Button("/");
  135.         DivideButton.reshape(216,138,24,18);
  136.         keyPressManagerPanel1.add(DivideButton);
  137.         label1 = new java.awt.Label("Number 1 =");
  138.         label1.reshape(12,65,84,13);
  139.         keyPressManagerPanel1.add(label1);
  140.         label2 = new java.awt.Label("Number 2 =");
  141.         label2.reshape(12,98,84,13);
  142.         keyPressManagerPanel1.add(label2);
  143.         label3 = new java.awt.Label("Answer =");
  144.         label3.reshape(12,142,84,13);
  145.         keyPressManagerPanel1.add(label3);
  146.         setTitle("Simple Calculation");
  147.         setResizable(false);
  148.         //}}
  149.  
  150.         textField1.requestFocus();
  151.  
  152.         //{{INIT_MENUS
  153.         menuBar1 = new java.awt.MenuBar();
  154.         menu1 = new java.awt.Menu("&Calculate");
  155.         menu1.add("&Add");
  156.         menu1.add("&Subtract");
  157.         menu1.add("&Multiply");
  158.         menu1.add("&Divide");
  159.         menuBar1.add(menu1);
  160.         setMenuBar(menuBar1);
  161.         //}}
  162.     }
  163.  
  164.     public CalculateFrame(String title) {
  165.         this();
  166.         setTitle(title);
  167.     }
  168.  
  169.     public synchronized void show() {
  170.         move(50, 50);
  171.         super.show();
  172.     }
  173.  
  174.     public boolean handleEvent(Event event) {
  175.         if (event.id == Event.WINDOW_DESTROY) {
  176.             hide();         // hide the Frame
  177.             return true;
  178.         }
  179.         if (event.target == AddButton && event.id == Event.ACTION_EVENT) {
  180.             AddButton_Clicked(event);
  181.         }
  182.         if (event.target == SubtractButton && event.id == Event.ACTION_EVENT) {
  183.             SubtractButton_Clicked(event);
  184.         }
  185.         if (event.target == MultiplyButton && event.id == Event.ACTION_EVENT) {
  186.             MultiplyButton_Clicked(event);
  187.         }
  188.         if (event.target == DivideButton && event.id == Event.ACTION_EVENT) {
  189.             DivideButton_Clicked(event);
  190.         }
  191.         return super.handleEvent(event);
  192.     }
  193.  
  194.     //{{DECLARE_CONTROLS
  195.     symantec.itools.awt.KeyPressManagerPanel keyPressManagerPanel1;
  196.     java.awt.TextField textField1;
  197.     java.awt.TextField textField2;
  198.     java.awt.TextField AnswerField;
  199.     java.awt.Button AddButton;
  200.     java.awt.Button SubtractButton;
  201.     java.awt.Button MultiplyButton;
  202.     java.awt.Button DivideButton;
  203.     java.awt.Label label1;
  204.     java.awt.Label label2;
  205.     java.awt.Label label3;
  206.     //}}
  207.  
  208.     //{{DECLARE_MENUS
  209.     java.awt.MenuBar menuBar1;
  210.     java.awt.Menu menu1;
  211.     //}}
  212. }
  213.