JOptionPane utilities : OptionPane « Swing JFC « Java

JOptionPane utilities

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
    return button;

  public static JSlider getSlider(final JOptionPane optionPane) {
    JSlider slider = new JSlider();
    ChangeListener changeListener = new ChangeListener() {
      public void stateChanged(ChangeEvent changeEvent) {
        JSlider theSlider = (JSlider) changeEvent.getSource();
        if (!theSlider.getValueIsAdjusting()) {
          optionPane.setInputValue(new Integer(theSlider.getValue()));
    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();

    // 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;


Related examples in the same category

1.A Program that Uses the JOptionPane Class to Get User Input
2.Demonstrates JoptionPaneDemonstrates JoptionPane
3.OptionPane Sample: simple dialogOptionPane Sample: simple dialog
4.JOptionPane demoJOptionPane demo
5.Simple Input DialogSimple Input Dialog
6.Demonstrate JOptionPaneDemonstrate JOptionPane
7.Display error message dialog with JOptionPane.ERROR_MESSAGE
8.Display warning message dialog with JOptionPane.WARNING_MESSAGE
9.Display question message dialog with JOptionPane.QUESTION_MESSAGE
10.Display information message dialog with JOptionPane.INFORMATION_MESSAGE
11.Show a message dialog with JOptionPane
12.Create a message dialog box with different options
13.Show message in two lines in a dialog box
14.Modal dialog with yes/no button
15.Modal dialog with OK/cancel and a text field
16.Wait (forever) for a non-null click and then quit
17.Create a Confirm Dialog Box
18.Create a Message Dialog Box
19.Use a JOptionPane
20.Yes no cancel dialog
21.OK cancel option dialog
22.Dialog with default options
23.Localize a JOptionPane dialog
24.Customize JOptionPane buttons
25.Exercise Options
26.Modifiable JOptionPane
27.Message dialog helperMessage dialog helper
28.Exercise all JOptionPane based dialogs