KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > demo > swingset > OptionPaneDemo


1 /*
2  * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * -Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * -Redistribution in binary form must reproduct the above copyright
12  * notice, this list of conditions and the following disclaimer in
13  * the documentation and/or other materials provided with the distribution.
14  *
15  * Neither the name of Sun Microsystems, Inc. or the names of contributors
16  * may be used to endorse or promote products derived from this software
17  * without specific prior written permission.
18  *
19  * This software is provided "AS IS," without a warranty of any kind. ALL
20  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
21  * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
22  * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT
23  * BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT
24  * OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS
25  * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
26  * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
27  * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY
28  * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN
29  * IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
30  *
31  * You acknowledge that Software is not designed, licensed or intended for
32  * use in the design, construction, operation or maintenance of any nuclear
33  * facility.
34  */

35
36 /*
37  * @(#)OptionPaneDemo.java 1.7 03/01/23
38  */

39 package demo.swingset;
40
41 import swingwtx.swing.*;
42 import swingwtx.swing.event.*;
43 import swingwtx.swing.text.*;
44 import swingwtx.swing.border.*;
45 import swingwtx.swing.colorchooser.*;
46 import swingwtx.swing.filechooser.*;
47 import javax.accessibility.*;
48
49 import swingwt.awt.*;
50 import swingwt.awt.event.*;
51 import java.beans.*;
52 import java.util.*;
53 import java.io.*;
54 import java.applet.*;
55 import java.net.*;
56
57 /**
58  * JOptionPaneDemo
59  *
60  * @version 1.7 01/23/03
61  * @author Jeff Dinkins
62  */

63 public class OptionPaneDemo extends DemoModule {
64
65     /**
66      * main method allows us to run as a standalone demo.
67      */

68     public static void main(String JavaDoc[] args) {
69     OptionPaneDemo demo = new OptionPaneDemo(null);
70     demo.mainImpl();
71     }
72
73     /**
74      * OptionPaneDemo Constructor
75      */

76     public OptionPaneDemo(SwingSet2 swingset) {
77     // Set the title for this demo, and an icon used to represent this
78
// demo inside the SwingSet2 app.
79
super(swingset, "OptionPaneDemo", "toolbar/JOptionPane.gif");
80
81     JPanel demo = getDemoPanel();
82
83     demo.setLayout(new BoxLayout(demo, BoxLayout.X_AXIS));
84
85     JPanel bp = new JPanel() {
86         public Dimension getMaximumSize() {
87         return new Dimension(getPreferredSize().width, super.getMaximumSize().height);
88         }
89     };
90     bp.setLayout(new BoxLayout(bp, BoxLayout.Y_AXIS));
91
92     bp.add(Box.createRigidArea(VGAP30));
93     bp.add(Box.createRigidArea(VGAP30));
94
95     bp.add(createInputDialogButton()); bp.add(Box.createRigidArea(VGAP15));
96     bp.add(createWarningDialogButton()); bp.add(Box.createRigidArea(VGAP15));
97     bp.add(createMessageDialogButton()); bp.add(Box.createRigidArea(VGAP15));
98     bp.add(createComponentDialogButton()); bp.add(Box.createRigidArea(VGAP15));
99     bp.add(createConfirmDialogButton()); bp.add(Box.createVerticalGlue());
100
101         demo.add(Box.createHorizontalGlue());
102     demo.add(bp);
103         demo.add(Box.createHorizontalGlue());
104     }
105
106     public JButton createWarningDialogButton() {
107     Action a = new AbstractAction(getString("OptionPaneDemo.warningbutton")) {
108         public void actionPerformed(ActionEvent e) {
109         JOptionPane.showMessageDialog(
110             getDemoPanel(),
111             getString("OptionPaneDemo.warningtext"),
112             getString("OptionPaneDemo.warningtitle"),
113             JOptionPane.WARNING_MESSAGE
114         );
115         }
116     };
117     return createButton(a);
118     }
119
120     public JButton createMessageDialogButton() {
121     Action a = new AbstractAction(getString("OptionPaneDemo.messagebutton")) {
122         URL img = getClass().getResource("/resources/images/optionpane/bottle.gif");
123         String JavaDoc imagesrc = "<img SRC=\"" + img + "\" width=\"284\" height=\"100\">";
124         String JavaDoc message = getString("OptionPaneDemo.messagetext");
125         public void actionPerformed(ActionEvent e) {
126         JOptionPane.showMessageDialog(
127             getDemoPanel(),
128             "<html>" + imagesrc + "<br><center>" + message + "</center><br></html>"
129         );
130         }
131     };
132     return createButton(a);
133     }
134
135     public JButton createConfirmDialogButton() {
136     Action a = new AbstractAction(getString("OptionPaneDemo.confirmbutton")) {
137         public void actionPerformed(ActionEvent e) {
138                 int result = JOptionPane.showConfirmDialog(getDemoPanel(), getString("OptionPaneDemo.confirmquestion"));
139                 if(result == JOptionPane.YES_OPTION) {
140             JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.confirmyes"));
141         } else if(result == JOptionPane.NO_OPTION) {
142                     JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.confirmno"));
143         }
144         }
145     };
146     return createButton(a);
147     }
148
149     public JButton createInputDialogButton() {
150     Action a = new AbstractAction(getString("OptionPaneDemo.inputbutton")) {
151         public void actionPerformed(ActionEvent e) {
152                 String JavaDoc result = JOptionPane.showInputDialog(getDemoPanel(), getString("OptionPaneDemo.inputquestion"));
153         JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.inputresponse"));
154         }
155     };
156     return createButton(a);
157     }
158
159     public JButton createComponentDialogButton() {
160     Action a = new AbstractAction(getString("OptionPaneDemo.componentbutton")) {
161         public void actionPerformed(ActionEvent e) {
162         // In a ComponentDialog, you can show as many message components and
163
// as many options as you want:
164

165         // Messages
166
Object JavaDoc[] message = new Object JavaDoc[4];
167                 message[0] = getString("OptionPaneDemo.componentmessage");
168                 message[1] = new JTextField(getString("OptionPaneDemo.componenttextfield"));
169
170                 JComboBox cb = new JComboBox();
171                 cb.addItem(getString("OptionPaneDemo.component_cb1"));
172                 cb.addItem(getString("OptionPaneDemo.component_cb2"));
173                 cb.addItem(getString("OptionPaneDemo.component_cb3"));
174                 message[2] = cb;
175
176                 message[3] = getString("OptionPaneDemo.componentmessage2");
177
178         // Options
179
String JavaDoc[] options = {
180             getString("OptionPaneDemo.component_op1"),
181             getString("OptionPaneDemo.component_op2"),
182             getString("OptionPaneDemo.component_op3"),
183             getString("OptionPaneDemo.component_op4"),
184             getString("OptionPaneDemo.component_op5")
185         };
186                 int result = JOptionPane.showOptionDialog(
187             getDemoPanel(), // the parent that the dialog blocks
188
message[3], // the dialog message array
189
getString("OptionPaneDemo.componenttitle"), // the title of the dialog window
190
JOptionPane.DEFAULT_OPTION, // option type
191
JOptionPane.INFORMATION_MESSAGE, // message type
192
null, // optional icon, use null to use the default icon
193
options, // options string array, will be made into buttons
194
options[3] // option that should be made into a default button
195
);
196         switch(result) {
197            case 0: // yes
198
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r1"));
199              break;
200            case 1: // no
201
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r2"));
202              break;
203            case 2: // maybe
204
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r3"));
205              break;
206            case 3: // probably
207
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r4"));
208              break;
209            default:
210              break;
211         }
212
213         }
214     };
215     return createButton(a);
216     }
217         
218     public JButton createButton(Action a) {
219     JButton b = new JButton() {
220         public Dimension getMaximumSize() {
221         int width = Short.MAX_VALUE;
222         int height = super.getMaximumSize().height;
223         return new Dimension(width, height);
224         }
225     };
226     // setting the following client property informs the button to show
227
// the action text as it's name. The default is to not show the
228
// action text.
229
b.putClientProperty("displayActionText", Boolean.TRUE);
230     b.setAction(a);
231     // b.setAlignmentX(JButton.CENTER_ALIGNMENT);
232
return b;
233     }
234
235 }
236
Popular Tags