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

金融证券系统

开发平台:

Java

  1. // <html><head><title>ATM Simulation Implementation - the Cash Dispenser</title></head><body><h2>ATM Simulation Implementation - the Cash Dispenser</h2><pre>
  2. /*
  3.  * Example ATM simulation - file CashDispenser.java
  4.  *
  5.  * This file implements the class that manages the ATM's cash dispenser
  6.  *
  7.  * Copyright (c) 1997 - Russell C. Bjork
  8.  *
  9.  */
  10. package atm.atmparts;
  11. import java.awt.*;
  12. import atm.util.Money;
  13. //</pre><hr><h3>Class CashDispenser</h3><pre>
  14. public class CashDispenser extends Panel
  15.   {     
  16.     //</pre><hr><pre>
  17.     public CashDispenser()
  18.       { setLayout(new GridLayout(1,1));
  19.         _label = new Label("$XXX", Label.CENTER);
  20.         _label.setFont(new Font("Helvetica", Font.PLAIN, 24));
  21.         _label.setForeground(new Color(0, 64, 0));
  22.         add(_label);
  23.         _label.hide();
  24.         _currentCash = new Money(0);
  25.       }
  26.     //</pre><hr><pre>
  27.     public void setCash(Money initialCash)
  28.       { _currentCash = initialCash; 
  29.       }
  30.     //</pre><hr><pre>
  31.     public void dispenseCash(Money amount)
  32.       { _label.setText("$" + amount.dollars());
  33.         for (int size = 3; size <= 24; size += 1)
  34.           { _label.setFont(new Font("Helvetica", Font.PLAIN, size));
  35.             _label.show();
  36.             try
  37.               { Thread.sleep(250); }
  38.             catch (InterruptedException e)
  39.               { }
  40.             _label.hide();
  41.           }
  42.         _currentCash.subtract(amount);
  43.       }
  44.     
  45.     //</pre><hr><pre>
  46.     public Money currentCash()
  47.       { return _currentCash;
  48.       }
  49.       
  50.     //</pre><hr><pre>
  51.     // Instance variable
  52.     
  53.     private Money _currentCash;
  54.     //</pre><hr><pre>
  55.     // This field is needed for the GUI
  56.     
  57.     private Label _label;    
  58.   }
  59. //</pre></body></html>