JSpinner в JOptionPane?

Мне нужно поместить JSpinner в JOptionPane. Вот что я попробовал:

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

Что приводит к:

Как удалить текстовое поле?

1 ответ

Решение

Вы должны использовать showMessageDialog,

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

Чтобы по-прежнему иметь кнопку отмены, используйте:

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
}

Вот скриншот на OS X:

Другие вопросы по тегам