Display.java
上传用户:ljt780218
上传日期:2022-07-30
资源大小:110k
文件大小:4k
源码类别:

金融证券系统

开发平台:

Java

  1. // <html><head><title>ATM Simulation Implementation - the Display</title></head><body><h2>ATM Simulation Implementation - the Display</h2><pre>
  2. /*
  3.  * Example ATM simulation - file Display.java
  4.  *
  5.  * This file implements the class that manages the ATM's display
  6.  *
  7.  * Copyright (c) 1997 - Russell C. Bjork
  8.  *
  9.  */
  10. package atm.atmparts;
  11. import java.awt.*;
  12. import java.util.StringTokenizer;
  13. //</pre><hr><h3>Class Display</h3><pre>
  14. public class Display extends Panel
  15.   {
  16.     //</pre><hr><pre>
  17.     public Display()
  18.       { setLayout(new GridLayout(GUILayout.DISPLAYABLE_LINES, 1));
  19.         setBackground(new Color(0, 96, 0));  // Dark green
  20.         setForeground(Color.white);
  21.         _line = new Label[GUILayout.DISPLAYABLE_LINES];
  22.         for (int i = 0; i < GUILayout.DISPLAYABLE_LINES; i ++)
  23.           { _line[i] = new Label("");
  24.             add(_line[i]);
  25.           }
  26.         _currentLine = 0;
  27.       }
  28.             
  29.     //</pre><hr><pre>
  30.     public void requestCard()
  31.       { write("Please insert your card to begin");
  32.       }
  33.     
  34.     //</pre><hr><pre>
  35.     public void requestPIN()
  36.       { write(
  37.         "Please enter your Personal Identification Number (PIN)n" +
  38.         "Press ENTER when finished or CLEAR to start over");
  39.       }
  40.          
  41.     //</pre><hr><pre>
  42.     public void displayMenu(String whatToChoose,
  43.                 int numItems,
  44.                 String items[])
  45.       { write(whatToChoose);
  46.         for (int i = 0; i < numItems; i ++)
  47.             write((i + 1) + ") " + items[i]); 
  48.       }
  49.     
  50.     
  51.     //</pre><hr><pre>
  52.     public void requestAmountEntry()
  53.       { write( 
  54.         "Please enter amount.n" +
  55.         "Press ENTER when finished or CLEAR to start over");
  56.       }
  57.     
  58.     //</pre><hr><pre>
  59.     public void requestDepositEnvelope()
  60.       { write(
  61.         "Please deposit an envelope in the slot");
  62.       }
  63.     
  64.     //</pre><hr><pre>
  65.     public void reportCardUnreadable()
  66.       { write(
  67.         "Sorry, your card was inserted incorrectly orn" + 
  68.         "is unreadable.n" +
  69.         "Please try inserting your card again");
  70.       }
  71.     
  72.     //</pre><hr><pre>
  73.     public void reportTransactionFailure(String explanation)
  74.       { write(explanation);
  75.         write("n" +
  76.              "Do you want to perform another transactionn" +
  77.              "(1 = Yes, 2 = No)?");
  78.       }
  79.     
  80.     //</pre><hr><pre>
  81.     public void requestReEnterPIN()
  82.       { write(
  83.         "Your PIN was entered incorrectly.n" +
  84.         "Please re-enter it");
  85.       }
  86.     
  87.     //</pre><hr><pre>
  88.     public void reportCardRetained()
  89.       { write( 
  90.         "Your PIN was entered incorrectly.n" +
  91.         "Your card has been retained - please contact the bank");
  92.         try
  93.           { Thread.sleep(10 * 1000); }
  94.         catch (InterruptedException e)
  95.           { }
  96.       }
  97.     
  98.     //</pre><hr><pre>
  99.     public void echoInput(String echo)
  100.       { _line[GUILayout.DISPLAYABLE_LINES - 1].setText("          " + echo);
  101.       }
  102.      
  103.     //</pre><hr><pre>
  104.     public void clearDisplay()
  105.       { for (int i = 0; i < GUILayout.DISPLAYABLE_LINES; i ++)
  106.             _line[i].setText("");
  107.         _currentLine = 0;
  108.       }
  109.       
  110.     //</pre><hr><pre>
  111.     // Private method and instance variables needed for GUI
  112.     
  113.     private void write(String s)
  114.       // Write one or more lines; may contain multiple lines delimited by n 
  115.       { StringTokenizer t = new StringTokenizer(s, "n", false);
  116.         while (t.hasMoreTokens())
  117.           { try
  118.               { _line[_currentLine ++].setText(t.nextToken()); }
  119.             catch (Exception e)
  120.               { }
  121.            }
  122.       }
  123.       
  124.     private Label          _line[];
  125.     private int            _currentLine;
  126.  
  127.   }     
  128. //</pre></body></html>