Java/Swing JFC/OptionPane — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 09:41, 1 июня 2010
Содержание
- 1 A Program that Uses the JOptionPane Class to Get User Input
- 2 Create a Confirm Dialog Box
- 3 Create a Message Dialog Box
- 4 Create a message dialog box with different options
- 5 Customize JOptionPane buttons
- 6 Demonstrate JOptionPane
- 7 Demonstrates JoptionPane
- 8 Dialog with default options
- 9 Display error message dialog with JOptionPane.ERROR_MESSAGE
- 10 Display information message dialog with JOptionPane.INFORMATION_MESSAGE
- 11 Display question message dialog with JOptionPane.QUESTION_MESSAGE
- 12 Display warning message dialog with JOptionPane.WARNING_MESSAGE
- 13 Exercise Options
- 14 JOptionPane demo
- 15 JOptionPane utilities
- 16 Localize a JOptionPane dialog
- 17 Message dialog helper
- 18 Modal dialog with OK/cancel and a text field
- 19 Modal dialog with yes/no button
- 20 Modifiable JOptionPane
- 21 OK cancel option dialog
- 22 OptionPane Sample: simple dialog
- 23 Show a message dialog with JOptionPane
- 24 Show message in two lines in a dialog box
- 25 Simple Input Dialog
- 26 Use a JOptionPane
- 27 Wait (forever) for a non-null click and then quit
- 28 Yes no cancel dialog
A Program that Uses the JOptionPane Class to Get User Input
<source lang="java">
import javax.swing.JOptionPane; public class MainClass {
public static void main(String[] args) { String s; s = JOptionPane.showInputDialog("Enter an integer:"); int x = Integer.parseInt(s); System.out.println("You entered " + x + "."); }
}
</source>
Create a Confirm Dialog Box
<source lang="java">
import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { int response = JOptionPane.showConfirmDialog(null, "Should i delete all files?"); }
}
</source>
Create a Message Dialog Box
<source lang="java">
import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { JOptionPane.showMessageDialog(null, "I am happy."); }
}
</source>
Create a message dialog box with different options
<source lang="java">
import java.awt.ruponent; import java.awt.FlowLayout; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Main extends JFrame {
public Main() throws HeadlessException { setSize(200, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button1 = new JButton("Message dialog"); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog((Component) e.getSource(), "Thank you!"); } }); JButton button2 = new JButton("Input dialog"); button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String text = JOptionPane.showInputDialog((Component) e.getSource(), "What is your name?"); if (text != null && !text.equals("")) { JOptionPane.showMessageDialog((Component) e.getSource(), "Hello " + text); } } }); JButton button3 = new JButton("Yes no dialog"); button3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int result = JOptionPane.showConfirmDialog((Component) e.getSource(), "Close this application?"); if (result == JOptionPane.YES_OPTION) { System.exit(0); } else if (result == JOptionPane.NO_OPTION) { System.out.println("Do nothing"); } } }); setLayout(new FlowLayout(FlowLayout.CENTER)); getContentPane().add(button1); getContentPane().add(button2); getContentPane().add(button3); } public static void main(String[] args) { new Main().setVisible(true); }
}
</source>
Customize JOptionPane buttons
<source lang="java">
import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { String[] buttons = { "Yes", "Yes to all", "No", "Cancel" }; int rc = JOptionPane.showOptionDialog(null, "Question ?", "Confirmation", JOptionPane.WARNING_MESSAGE, 0, null, buttons, buttons[2]); System.out.println(rc); }
}
</source>
Demonstrate JOptionPane
<source lang="java">
/*
* Copyright (c) Ian F. Darwin, http://www.darwinsys.ru/, 1996-2002. * All rights reserved. Software written by Ian F. Darwin and others. * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $ * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS"" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * Java, the Duke mascot, and all variants of Sun"s Java "steaming coffee * cup" logo are trademarks of Sun Microsystems. Sun"s, and James Gosling"s, * pioneering role in inventing and promulgating (and standardizing) the Java * language and environment is gratefully acknowledged. * * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&T, for * inventing predecessor languages C and C++ is also gratefully acknowledged. */
import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; /**
* Demonstrate JOptionPane * * @author Ian Darwin */
public class JOptionDemo extends JFrame {
// Constructor JOptionDemo(String s) { super(s); Container cp = getContentPane(); cp.setLayout(new FlowLayout()); JButton b = new JButton("Give me a message"); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(JOptionDemo.this, "This is your message: etaoin shrdlu", "Coded Message", JOptionPane.INFORMATION_MESSAGE); } }); cp.add(b); b = new JButton("Goodbye!"); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); cp.add(b); // size the main window pack(); } public static void main(String[] arg) { JOptionDemo x = new JOptionDemo("Testing 1 2 3..."); x.setVisible(true); }
}
</source>
Demonstrates JoptionPane
<source lang="java">
// : c14:MessageBoxes.java // Demonstrates JoptionPane. // <applet code=MessageBoxes width=200 height=150></applet> // From "Thinking in Java, 3rd ed." (c) Bruce Eckel 2002 // www.BruceEckel.ru. See copyright notice in CopyRight.txt. import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextField; public class MessageBoxes extends JApplet {
private JButton[] b = { new JButton("Alert"), new JButton("Yes/No"), new JButton("Color"), new JButton("Input"), new JButton("3 Vals") }; private JTextField txt = new JTextField(15); private ActionListener al = new ActionListener() { public void actionPerformed(ActionEvent e) { String id = ((JButton) e.getSource()).getText(); if (id.equals("Alert")) JOptionPane.showMessageDialog(null, "There"s a bug on you!", "Hey!", JOptionPane.ERROR_MESSAGE); else if (id.equals("Yes/No")) JOptionPane.showConfirmDialog(null, "or no", "choose yes", JOptionPane.YES_NO_OPTION); else if (id.equals("Color")) { Object[] options = { "Red", "Green" }; int sel = JOptionPane.showOptionDialog(null, "Choose a Color!", "Warning", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); if (sel != JOptionPane.CLOSED_OPTION) txt.setText("Color Selected: " + options[sel]); } else if (id.equals("Input")) { String val = JOptionPane .showInputDialog("How many fingers do you see?"); txt.setText(val); } else if (id.equals("3 Vals")) { Object[] selections = { "First", "Second", "Third" }; Object val = JOptionPane.showInputDialog(null, "Choose one", "Input", JOptionPane.INFORMATION_MESSAGE, null, selections, selections[0]); if (val != null) txt.setText(val.toString()); } } }; public void init() { Container cp = getContentPane(); cp.setLayout(new FlowLayout()); for (int i = 0; i < b.length; i++) { b[i].addActionListener(al); cp.add(b[i]); } cp.add(txt); } public static void main(String[] args) { run(new MessageBoxes(), 200, 200); } public static void run(JApplet applet, int width, int height) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(applet); frame.setSize(width, height); applet.init(); applet.start(); frame.setVisible(true); }
} ///:~
</source>
Dialog with default options
<source lang="java">
import java.awt.ruponent; import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { int i = ok("Done."); System.out.println("ret : " + i); } public static int ok(String theMessage) { int result = JOptionPane.showConfirmDialog((Component) null, theMessage, "alert", JOptionPane.DEFAULT_OPTION); return result; }
}
</source>
Display error message dialog with JOptionPane.ERROR_MESSAGE
<source lang="java">
import javax.swing.JOptionPane; import javax.swing.JPanel; public class JOptionPaneERROR_MESSAGE {
public static void main(String[] args) { final JPanel panel = new JPanel(); JOptionPane.showMessageDialog(panel, "Could not open file", "Error", JOptionPane.ERROR_MESSAGE); }
}
</source>
Display information message dialog with JOptionPane.INFORMATION_MESSAGE
<source lang="java">
import javax.swing.JOptionPane; import javax.swing.JPanel; public class JOptionPaneINFORMATION_MESSAGE {
public static void main(String[] args) { final JPanel panel = new JPanel(); JOptionPane.showMessageDialog(panel, "Download completed", "Question", JOptionPane.INFORMATION_MESSAGE); }
}
</source>
Display question message dialog with JOptionPane.QUESTION_MESSAGE
<source lang="java">
import javax.swing.JOptionPane; import javax.swing.JPanel; public class JOptionPaneQUESTION_MESSAGE {
public static void main(String[] args) { final JPanel panel = new JPanel();
JOptionPane.showMessageDialog(panel, "Are you sure to quit?", "Question", JOptionPane.QUESTION_MESSAGE); }
}
</source>
Display warning message dialog with JOptionPane.WARNING_MESSAGE
<source lang="java">
import javax.swing.JOptionPane; import javax.swing.JPanel; public class JOptionPaneWARNING_MESSAGE {
public static void main(String[] args) { final JPanel panel = new JPanel(); JOptionPane.showMessageDialog(panel, "A deprecated call", "Warning", JOptionPane.WARNING_MESSAGE); }
}
</source>
Exercise Options
<source lang="java">
import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; public class Main {
public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(200, 200); frame.setVisible(true); JOptionPane.showMessageDialog(frame, "A"); JOptionPane.showMessageDialog(frame, "B", "message", JOptionPane.WARNING_MESSAGE); int result = JOptionPane.showConfirmDialog(null, "Remove now?"); switch (result) { case JOptionPane.YES_OPTION: System.out.println("Yes"); break; case JOptionPane.NO_OPTION: System.out.println("No"); break; case JOptionPane.CANCEL_OPTION: System.out.println("Cancel"); break; case JOptionPane.CLOSED_OPTION: System.out.println("Closed"); break; } String name = JOptionPane.showInputDialog(null, "Please enter your name."); System.out.println(name); JTextField userField = new JTextField(); JPasswordField passField = new JPasswordField(); String message = "Please enter your user name and password."; result = JOptionPane.showOptionDialog(frame, new Object[] { message, userField, passField }, "Login", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null); if (result == JOptionPane.OK_OPTION) System.out.println(userField.getText() + " " + new String(passField.getPassword())); }
}
</source>
JOptionPane demo
<source lang="java">
/* Definitive Guide to Swing for Java 2, Second Edition By John Zukowski ISBN: 1-893115-78-X Publisher: APress
- /
import java.awt.BorderLayout; import java.awt.ruponent; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class ManualDisplayPopup {
public static void main(String args[]) { JFrame frame = new JFrame("NoButton Popup"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button = new JButton("Ask"); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { Component source = (Component) actionEvent.getSource(); JOptionPane optionPane = new JOptionPane("Continue printing?", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION); JDialog dialog = optionPane.createDialog(source, "Manual Creation"); dialog.show(); int selection = OptionPaneUtils.getSelection(optionPane); System.out.println(selection); } }; button.addActionListener(actionListener); Container contentPane = frame.getContentPane(); contentPane.add(button, BorderLayout.SOUTH); frame.setSize(300, 200); frame.setVisible(true); }
} final class OptionPaneUtils {
private OptionPaneUtils() { } public static JOptionPane getNarrowOptionPane(int maxCharactersPerLineCount) { // Our inner class definition class NarrowOptionPane extends JOptionPane { int maxCharactersPerLineCount; NarrowOptionPane(int maxCharactersPerLineCount) { this.maxCharactersPerLineCount = maxCharactersPerLineCount; } public int getMaxCharactersPerLineCount() { return maxCharactersPerLineCount; } } return new NarrowOptionPane(maxCharactersPerLineCount); } public static JButton getButton(final JOptionPane optionPane, String text, Icon icon) { final JButton button = new JButton(text, icon); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { // Return current text label, instead of argument to method optionPane.setValue(button.getText()); } }; button.addActionListener(actionListener); return button; } public static JSlider getSlider(final JOptionPane optionPane) { JSlider slider = new JSlider(); slider.setMajorTickSpacing(10); slider.setPaintTicks(true); slider.setPaintLabels(true); ChangeListener changeListener = new ChangeListener() { public void stateChanged(ChangeEvent changeEvent) { JSlider theSlider = (JSlider) changeEvent.getSource(); if (!theSlider.getValueIsAdjusting()) { optionPane.setInputValue(new Integer(theSlider.getValue())); } } }; slider.addChangeListener(changeListener); return slider; } public static int getSelection(JOptionPane optionPane) { // Default return value, signals nothing selected int returnValue = JOptionPane.CLOSED_OPTION; // Get selected Value Object selectedValue = optionPane.getValue(); System.out.println(selectedValue); // If none, then nothing selected if (selectedValue != null) { Object options[] = optionPane.getOptions(); if (options == null) { // default buttons, no array specified if (selectedValue instanceof Integer) { returnValue = ((Integer) selectedValue).intValue(); } } else { // Array of option buttons specified for (int i = 0, n = options.length; i < n; i++) { if (options[i].equals(selectedValue)) { returnValue = i; break; // out of for loop } } } } return returnValue; }
}
</source>
JOptionPane utilities
<source lang="java">
/* Definitive Guide to Swing for Java 2, Second Edition By John Zukowski ISBN: 1-893115-78-X Publisher: APress
- /
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JOptionPane; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public final class OptionPaneUtils {
private OptionPaneUtils() { } public static JOptionPane getNarrowOptionPane(int maxCharactersPerLineCount) { // Our inner class definition class NarrowOptionPane extends JOptionPane { int maxCharactersPerLineCount; NarrowOptionPane(int maxCharactersPerLineCount) { this.maxCharactersPerLineCount = maxCharactersPerLineCount; } public int getMaxCharactersPerLineCount() { return maxCharactersPerLineCount; } } return new NarrowOptionPane(maxCharactersPerLineCount); } public static JButton getButton(final JOptionPane optionPane, String text, Icon icon) { final JButton button = new JButton(text, icon); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { // Return current text label, instead of argument to method optionPane.setValue(button.getText()); } }; button.addActionListener(actionListener); return button; } public static JSlider getSlider(final JOptionPane optionPane) { JSlider slider = new JSlider(); slider.setMajorTickSpacing(10); slider.setPaintTicks(true); slider.setPaintLabels(true); ChangeListener changeListener = new ChangeListener() { public void stateChanged(ChangeEvent changeEvent) { JSlider theSlider = (JSlider) changeEvent.getSource(); if (!theSlider.getValueIsAdjusting()) { optionPane.setInputValue(new Integer(theSlider.getValue())); } } }; slider.addChangeListener(changeListener); return slider; } public static int getSelection(JOptionPane optionPane) { // Default return value, signals nothing selected int returnValue = JOptionPane.CLOSED_OPTION; // Get selected Value Object selectedValue = optionPane.getValue(); System.out.println(selectedValue); // If none, then nothing selected if (selectedValue != null) { Object options[] = optionPane.getOptions(); if (options == null) { // default buttons, no array specified if (selectedValue instanceof Integer) { returnValue = ((Integer) selectedValue).intValue(); } } else { // Array of option buttons specified for (int i = 0, n = options.length; i < n; i++) { if (options[i].equals(selectedValue)) { returnValue = i; break; // out of for loop } } } } return returnValue; }
}
</source>
Localize a JOptionPane dialog
<source lang="java">
[JOptionPane_en.properties] Yes=Yes No=No Cancel=Cancel SaveMsg=Do you want to save your data [JOptionPane_fr.properties] Yes=Oui No=Non Cancel=Annuler SaveMsg=Voulez-vous sauvegarder vos donnees
</source>
Message dialog helper
<source lang="java">
/*
* Copyright (C) 2001-2003 Colin Bell * colbell@users.sourceforge.net * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
import java.awt.ruponent; import java.awt.Frame; import java.io.File; import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JOptionPane; /**
* This class provides some methods for using standard JDK dialogs. * * @author */
public class Dialogs {
public static void showNotYetImplemented(Component owner) { JOptionPane.showMessageDialog(owner, "Not Yet Implemented","", JOptionPane.INFORMATION_MESSAGE); } public static boolean showYesNo(Component owner, String msg) { return showYesNo(owner, msg, ""); } public static boolean showYesNo(Component owner, String msg, String title) { int rc = JOptionPane.showConfirmDialog(owner, msg, title, JOptionPane.YES_NO_OPTION); return rc == JOptionPane.YES_OPTION; } public static void showOk(Component owner, String msg) { JOptionPane.showMessageDialog(owner, msg, "", JOptionPane.INFORMATION_MESSAGE); } private static boolean canSaveToFile(Frame parentFrame, File outFile) { if (!outFile.exists()) { return true; } String msg = "Alreadyexists" + outFile.getAbsolutePath(); if (!Dialogs.showYesNo(parentFrame, msg)) { return false; } if (!outFile.canWrite()) { msg = "Cannotwrite" + outFile.getAbsolutePath(); Dialogs.showOk(parentFrame, msg); return false; } outFile.delete(); return true; }
}
</source>
Modal dialog with OK/cancel and a text field
<source lang="java">
import javax.swing.JFrame; import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { JFrame frame = new JFrame(); String message = "message"; String text = JOptionPane.showInputDialog(frame, message); if (text == null) { // User clicked cancel } }
}
</source>
Modal dialog with yes/no button
<source lang="java">
import javax.swing.JFrame; import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { JFrame frame = new JFrame(); String message = "message"; int answer = JOptionPane.showConfirmDialog(frame, message); if (answer == JOptionPane.YES_OPTION) { // User clicked YES. } else if (answer == JOptionPane.NO_OPTION) { // User clicked NO. } }
}
</source>
Modifiable JOptionPane
<source lang="java">
/*
* $Id: ModifiableJOptionPane.java,v 1.1.1.1 2005/04/07 18:36:21 pocho Exp $ */
import java.awt.ruponent; import java.awt.HeadlessException; import javax.swing.Icon; import javax.swing.JDialog; import javax.swing.JInternalFrame; import javax.swing.JOptionPane;
/**
* {@link javax.swing.JOptionPane} that can be modified for creating resizable * dialogs and so on. Default implementation of {@link javax.swing.JOptionPane} * creates allways unresizable dialog. * * @version $Name: $ - $Revision: 1.1.1.1 $ - $Date: 2005/04/07 18:36:21 $ */
public class ModifiableJOptionPane extends JOptionPane {
private boolean resizable; public ModifiableJOptionPane() { super(); } /** * @param message */ public ModifiableJOptionPane(Object message) { super(message); } /** * @param message * @param messageType */ public ModifiableJOptionPane(Object message, int messageType) { super(message, messageType); } /** * @param message * @param messageType * @param optionType */ public ModifiableJOptionPane(Object message, int messageType, int optionType) { super(message, messageType, optionType); } /** * @param message * @param messageType * @param optionType * @param icon */ public ModifiableJOptionPane(Object message, int messageType, int optionType, Icon icon) { super(message, messageType, optionType, icon); } /** * @param message * @param messageType * @param optionType * @param icon * @param options */ public ModifiableJOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] options) { super(message, messageType, optionType, icon, options); } /** * @param message * @param messageType * @param optionType * @param icon * @param options * @param initialValue */ public ModifiableJOptionPane(Object message, int messageType, int optionType, Icon icon, Object[] options, Object initialValue) { super(message, messageType, optionType, icon, options, initialValue); } /** * @see javax.swing.JOptionPane#createDialog(java.awt.ruponent, java.lang.String) */ public JDialog createDialog(Component parentComponent, String title) throws HeadlessException { JDialog dialog = super.createDialog(parentComponent, title); dialog.setResizable(isResizable()); return dialog; } /** * @see javax.swing.JOptionPane#createInternalFrame(java.awt.ruponent, java.lang.String) */ public JInternalFrame createInternalFrame(Component parentComponent, String title) { JInternalFrame frame = super.createInternalFrame(parentComponent, title); frame.setResizable(isResizable()); return frame; } public void setResizable(boolean b) { this.resizable = b; } public boolean isResizable() { return resizable; }
}
</source>
OK cancel option dialog
<source lang="java">
import java.awt.ruponent; import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { int i = okcancel("Are your sure ?"); System.out.println("ret : " + i); } public static int okcancel(String theMessage) { int result = JOptionPane.showConfirmDialog((Component) null, theMessage, "alert", JOptionPane.OK_CANCEL_OPTION); return result; }
}
</source>
OptionPane Sample: simple dialog
<source lang="java">
import java.awt.BorderLayout; import java.awt.ruponent; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; public class OptionPaneSample {
public static void main(String args[]) { JFrame f = new JFrame("JOptionPane Sample"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container content = f.getContentPane(); JButton button = new JButton("Ask"); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { Component source = (Component) actionEvent.getSource(); Object response = JOptionPane.showInputDialog(source, "Where do you want to go tomorrow?", "JOptionPane Sample", JOptionPane.QUESTION_MESSAGE, null, new String[] { "A","B", "C","D","E" },"E"); System.out.println("Response: " + response); } }; button.addActionListener(actionListener); content.add(button, BorderLayout.CENTER); f.setSize(300, 200); f.setVisible(true); }
}
</source>
Show a message dialog with JOptionPane
<source lang="java">
import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) { JOptionPane.showMessageDialog(null, "The message", "The Title", JOptionPane.INFORMATION_MESSAGE); }
}
</source>
Show message in two lines in a dialog box
<source lang="java">
import javax.swing.JFrame; import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { // Modal dialog with OK button String message = "Line1\nLine2"; JFrame frame = new JFrame(); JOptionPane.showMessageDialog(frame, message); }
}
</source>
Simple Input Dialog
<source lang="java">
import java.awt.BorderLayout; import java.awt.ruponent; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; public class SamplePopup {
public static void main(String args[]) { JFrame frame = new JFrame("Sample Popup"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button = new JButton("Ask"); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { Component source = (Component) actionEvent.getSource(); Object response = JOptionPane.showInputDialog(source, "Where would you like to go to lunch?", "Select a Destination", JOptionPane.QUESTION_MESSAGE, null, new String[] { "A", "B","C", "D", "E" },"B"); System.out.println("Response: " + response); } }; button.addActionListener(actionListener); Container contentPane = frame.getContentPane(); contentPane.add(button, BorderLayout.SOUTH); frame.setSize(300, 200); frame.setVisible(true); }
}
</source>
Use a JOptionPane
<source lang="java">
import java.awt.ruponent; import javax.swing.JOptionPane; public class Main {
public static int yesno(String theMessage) { int result = JOptionPane.showConfirmDialog((Component) null, theMessage, "alert", JOptionPane.YES_NO_OPTION); return result; } public static void main(String args[]) { int i = yesno("Are your sure ?"); System.out.println("ret : " + i); }
}
</source>
Wait (forever) for a non-null click and then quit
<source lang="java">
import javax.swing.JDialog; import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { JOptionPane pane = new JOptionPane("your message",JOptionPane.ERROR_MESSAGE, JOptionPane.OK_OPTION); JDialog d = pane.createDialog(null, "title"); d.pack(); d.setModal(false); d.setVisible(true); while (pane.getValue() == JOptionPane.UNINITIALIZED_VALUE) { try { Thread.sleep(100); } catch (InterruptedException ie) { } } System.exit(0); }
}
</source>
Yes no cancel dialog
<source lang="java">
import java.awt.ruponent; import javax.swing.JOptionPane; public class Main {
public static void main(String[] argv) throws Exception { int i = yesnocancel("Are your sure ?"); System.out.println("ret : " + i); } public static int yesnocancel(String theMessage) { int result = JOptionPane.showConfirmDialog((Component) null, theMessage,"alert", JOptionPane.YES_NO_CANCEL_OPTION); return result; }
}
</source>