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

           
         
    
    
  








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