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

金融证券系统

开发平台:

Java

  1. // <html><head><title>ATM Simulation Implementation - Question Dialog Box</title></head><body><h2>ATM Simulation Implementation - Question Dialog Box</h2><pre>
  2. /*
  3.  * Example ATM simulation - file QuestionDialog.java
  4.  *
  5.  * This file implements the a pop-up dialog that is utilized by the GUI for
  6.  * some of the ATM components.  Since it is only utilized by classes in package
  7.  * atmparts, it is not made public.
  8.  *
  9.  * This version has been modified to work correctly under JDK 1.1 (though it still
  10.  * uses the 1.0.2 event model)
  11.  *
  12.  * Copyright (c) 1997, 1999 - Russell C. Bjork
  13.  *
  14.  */
  15. package atm.atmparts;
  16. import java.awt.*;
  17. //</pre><hr><h3>Class QuestionDialog</h3><pre>
  18. class QuestionDialog extends Dialog
  19.   {
  20.     //</pre><hr><pre>
  21.     public QuestionDialog(String question, Component caller)
  22.       { super(GUILayout.getContainingFrame(), true);
  23.         setLayout(new BorderLayout());
  24.         add("North", new Label(question));
  25.         _answer = new TextField("");
  26.         add("Center", _answer);
  27.         Panel buttonPanel = new Panel();
  28.         _okay = new Button("OK");
  29.         buttonPanel.add(_okay);
  30.         add("South", buttonPanel);
  31.         pack();
  32.         // Center this box in the outermost container holding the caller.  If
  33.         // GUILayout found a frame for us when it did the layout, use this;
  34.         // otherwise follow parents from the caller until we get to one that
  35.         // has a null parent.
  36.         
  37.         Component topLevel;
  38.         if (GUILayout.getContainingFrame() != null)
  39.             topLevel = GUILayout.getContainingFrame();
  40.         else
  41.           { topLevel = caller;
  42.             while (topLevel.getParent() != null)
  43.                 topLevel = topLevel.getParent();
  44.           }
  45.         Point topLevelLocation = topLevel.location();
  46.         Dimension topLevelSize = topLevel.size();
  47.         Dimension dialogSize = size();
  48.         int dialogX = topLevelLocation.x + 
  49.                       (topLevelSize.width - dialogSize.width) / 2;
  50.         int dialogY = topLevelLocation.y + 
  51.                       (topLevelSize.height - dialogSize.height) / 2;
  52.         if (dialogX < 0) dialogX = 0;
  53.         if (dialogY < 0) dialogY = 0;
  54.         move(dialogX, dialogY);    
  55.       }
  56.    
  57.     //</pre><hr><pre>
  58.     public String answer()
  59.       { _answer.requestFocus();
  60.         // This pops up the box, and then blocks until it is disposed by the answer
  61.        // method below, which occurs when the user clicks the OK button or presses
  62.        // return in the answer field.  
  63.        show();
  64.         return _answer.getText();
  65.       }
  66.     
  67.     //</pre><hr><pre>
  68.     public boolean action(Event e, Object arg)
  69.       { if (e.target == _answer || e.target == _okay )
  70.           { hide();
  71.             dispose();
  72.             return true;
  73.           }
  74.         else
  75.             return false;
  76.       }
  77.       
  78.     //</pre><hr><pre>
  79.     private TextField _answer;
  80.     private Button _okay;
  81.   }
  82. //</pre></body></html>