Search code examples
javaswingjoptionpanejspinner

JSpinner in JOptionPane?


I need to put a JSpinner in a JOptionPane. Here is what I've tried:

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;

    public static void main(String[] args) {
        SpinnerNumberModel sModel = new SpinnerNumberModel(0, 0, 30, 1);
        JSpinner spinner = new JSpinner(sModel);
        JOptionPane.showInputDialog(spinner);
    }

Which results in:

enter image description here

How do I remove the textbox?


Solution

  • You have to use showMessageDialog.

    SpinnerNumberModel sModel = new SpinnerNumberModel(0, 0, 30, 1);
    JSpinner spinner = new JSpinner(sModel);
    JOptionPane.showMessageDialog(null, spinner);
    

    For still having a cancel button, use:

    int option = JOptionPane.showOptionDialog(null, spinner, "Enter valid number", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
    if (option == JOptionPane.CANCEL_OPTION)
    {
        // user hit cancel
    } else if (option == JOptionPane.OK_OPTION)
    {
        // user entered a number
    }
    

    Here is a screenshot on OS X:

    enter image description here