1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
package gjt;
import java.awt.*;
/**
* A dialog that displays a message and comes equipped with an
* Ok button with which the dialog is dismissed.<p>
*
* Note that there is only one MessageDialog, that gets
* reused. Clients must call getMessageDialog() in order to
* access the one and only MessageDialog.<p>
*
* <em>Note: The 1.0.2 version of the AWT seems to have
* introduced a bug that causes pack() to work incorrectly
* under Win95.</em>
*
* @version 1.0, Apr 1 1996
* @author David Geary
* @see GJTDialog
* @see gjt.test.MessageDialogTest
* @see gjt.test.DialogTest
*/
public class MessageDialog extends GJTDialog {
static private MessageDialog _theMessageDialog;
private Button okButton;
private String message;
private ButtonPanel buttonPanel = new ButtonPanel();
static public MessageDialog getMessageDialog(Frame frame,
DialogClient client,
String title,
String message) {
if(_theMessageDialog == null)
_theMessageDialog = new MessageDialog(frame,
client,
title,
message);
else {
_theMessageDialog.setClient (client);
_theMessageDialog.setTitle (title);
_theMessageDialog.setMessage(message);
}
return _theMessageDialog;
}
private MessageDialog(Frame frame, DialogClient client,
String title, String message) {
super(frame, title, client, true);
okButton = buttonPanel.add("Ok");
setLayout(new BorderLayout());
add("Center", new MessagePanel(message));
add("South", buttonPanel);
pack();
}
public void show() {
okButton.requestFocus();
super.show();
}
public boolean action(Event event, Object what) {
hide();
client.dialogDismissed(this);
return true;
}
private void setMessage(String message) {
this.message = message;
}
}
class MessagePanel extends Panel {
public MessagePanel(String message) {
add("Center", new Label(message, Label.CENTER));
}
public Insets insets() {
return new Insets(10,10,10,10);
}
}
|