Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/demo/share/jfc/SwingSet2/OptionPaneDemo.java
41149 views
1
/*
2
*
3
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* - Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* - Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* - Neither the name of Oracle nor the names of its
17
* contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
*/
32
33
34
import javax.swing.*;
35
import javax.swing.event.*;
36
import javax.swing.text.*;
37
import javax.swing.border.*;
38
import javax.swing.colorchooser.*;
39
import javax.swing.filechooser.*;
40
import javax.accessibility.*;
41
42
import java.awt.*;
43
import java.awt.event.*;
44
import java.beans.*;
45
import java.util.*;
46
import java.io.*;
47
import java.applet.*;
48
import java.net.*;
49
50
/**
51
* JOptionPaneDemo
52
*
53
* @author Jeff Dinkins
54
*/
55
public class OptionPaneDemo extends DemoModule {
56
57
/**
58
* main method allows us to run as a standalone demo.
59
*/
60
public static void main(String[] args) {
61
OptionPaneDemo demo = new OptionPaneDemo(null);
62
demo.mainImpl();
63
}
64
65
/**
66
* OptionPaneDemo Constructor
67
*/
68
public OptionPaneDemo(SwingSet2 swingset) {
69
// Set the title for this demo, and an icon used to represent this
70
// demo inside the SwingSet2 app.
71
super(swingset, "OptionPaneDemo", "toolbar/JOptionPane.gif");
72
73
JPanel demo = getDemoPanel();
74
75
demo.setLayout(new BoxLayout(demo, BoxLayout.X_AXIS));
76
77
JPanel bp = new JPanel() {
78
public Dimension getMaximumSize() {
79
return new Dimension(getPreferredSize().width, super.getMaximumSize().height);
80
}
81
};
82
bp.setLayout(new BoxLayout(bp, BoxLayout.Y_AXIS));
83
84
bp.add(Box.createRigidArea(VGAP30));
85
bp.add(Box.createRigidArea(VGAP30));
86
87
bp.add(createInputDialogButton()); bp.add(Box.createRigidArea(VGAP15));
88
bp.add(createWarningDialogButton()); bp.add(Box.createRigidArea(VGAP15));
89
bp.add(createMessageDialogButton()); bp.add(Box.createRigidArea(VGAP15));
90
bp.add(createComponentDialogButton()); bp.add(Box.createRigidArea(VGAP15));
91
bp.add(createConfirmDialogButton()); bp.add(Box.createVerticalGlue());
92
93
demo.add(Box.createHorizontalGlue());
94
demo.add(bp);
95
demo.add(Box.createHorizontalGlue());
96
}
97
98
public JButton createWarningDialogButton() {
99
Action a = new AbstractAction(getString("OptionPaneDemo.warningbutton")) {
100
public void actionPerformed(ActionEvent e) {
101
JOptionPane.showMessageDialog(
102
getDemoPanel(),
103
getString("OptionPaneDemo.warningtext"),
104
getString("OptionPaneDemo.warningtitle"),
105
JOptionPane.WARNING_MESSAGE
106
);
107
}
108
};
109
return createButton(a);
110
}
111
112
public JButton createMessageDialogButton() {
113
Action a = new AbstractAction(getString("OptionPaneDemo.messagebutton")) {
114
URL img = getClass().getResource("/resources/images/optionpane/bottle.gif");
115
String imagesrc = "<img src=\"" + img + "\" width=\"284\" height=\"100\">";
116
String message = getString("OptionPaneDemo.messagetext");
117
public void actionPerformed(ActionEvent e) {
118
JOptionPane.showMessageDialog(
119
getDemoPanel(),
120
"<html>" + imagesrc + "<br><center>" + message + "</center><br></html>"
121
);
122
}
123
};
124
return createButton(a);
125
}
126
127
public JButton createConfirmDialogButton() {
128
Action a = new AbstractAction(getString("OptionPaneDemo.confirmbutton")) {
129
public void actionPerformed(ActionEvent e) {
130
int result = JOptionPane.showConfirmDialog(getDemoPanel(), getString("OptionPaneDemo.confirmquestion"));
131
if(result == JOptionPane.YES_OPTION) {
132
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.confirmyes"));
133
} else if(result == JOptionPane.NO_OPTION) {
134
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.confirmno"));
135
}
136
}
137
};
138
return createButton(a);
139
}
140
141
public JButton createInputDialogButton() {
142
Action a = new AbstractAction(getString("OptionPaneDemo.inputbutton")) {
143
public void actionPerformed(ActionEvent e) {
144
String result = JOptionPane.showInputDialog(getDemoPanel(), getString("OptionPaneDemo.inputquestion"));
145
if ((result != null) && (result.length() > 0)) {
146
JOptionPane.showMessageDialog(getDemoPanel(),
147
result + ": " +
148
getString("OptionPaneDemo.inputresponse"));
149
}
150
}
151
};
152
return createButton(a);
153
}
154
155
public JButton createComponentDialogButton() {
156
Action a = new AbstractAction(getString("OptionPaneDemo.componentbutton")) {
157
public void actionPerformed(ActionEvent e) {
158
// In a ComponentDialog, you can show as many message components and
159
// as many options as you want:
160
161
// Messages
162
Object[] message = new Object[4];
163
message[0] = getString("OptionPaneDemo.componentmessage");
164
message[1] = new JTextField(getString("OptionPaneDemo.componenttextfield"));
165
166
JComboBox<String> cb = new JComboBox<>();
167
cb.addItem(getString("OptionPaneDemo.component_cb1"));
168
cb.addItem(getString("OptionPaneDemo.component_cb2"));
169
cb.addItem(getString("OptionPaneDemo.component_cb3"));
170
message[2] = cb;
171
172
message[3] = getString("OptionPaneDemo.componentmessage2");
173
174
// Options
175
String[] options = {
176
getString("OptionPaneDemo.component_op1"),
177
getString("OptionPaneDemo.component_op2"),
178
getString("OptionPaneDemo.component_op3"),
179
getString("OptionPaneDemo.component_op4"),
180
getString("OptionPaneDemo.component_op5")
181
};
182
int result = JOptionPane.showOptionDialog(
183
getDemoPanel(), // the parent that the dialog blocks
184
message, // the dialog message array
185
getString("OptionPaneDemo.componenttitle"), // the title of the dialog window
186
JOptionPane.DEFAULT_OPTION, // option type
187
JOptionPane.INFORMATION_MESSAGE, // message type
188
null, // optional icon, use null to use the default icon
189
options, // options string array, will be made into buttons
190
options[3] // option that should be made into a default button
191
);
192
switch(result) {
193
case 0: // yes
194
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r1"));
195
break;
196
case 1: // no
197
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r2"));
198
break;
199
case 2: // maybe
200
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r3"));
201
break;
202
case 3: // probably
203
JOptionPane.showMessageDialog(getDemoPanel(), getString("OptionPaneDemo.component_r4"));
204
break;
205
default:
206
break;
207
}
208
209
}
210
};
211
return createButton(a);
212
}
213
214
public JButton createButton(Action a) {
215
JButton b = new JButton() {
216
public Dimension getMaximumSize() {
217
int width = Short.MAX_VALUE;
218
int height = super.getMaximumSize().height;
219
return new Dimension(width, height);
220
}
221
};
222
// setting the following client property informs the button to show
223
// the action text as it's name. The default is to not show the
224
// action text.
225
b.putClientProperty("displayActionText", Boolean.TRUE);
226
b.setAction(a);
227
// b.setAlignmentX(JButton.CENTER_ALIGNMENT);
228
return b;
229
}
230
231
}
232
233