2012-04-11 14 views
4

Ich muss einen JSPinner in einem JOptionPane setzen. Hier ist, was ich habe versucht:JSpinner in 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); 
    } 

was zur Folge hat:

enter image description here

Wie kann ich die Textbox entfernen?

Antwort

9

Sie müssen showMessageDialog verwenden.

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

Für noch eine Löschtaste mit, zu verwenden:

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 
} 

ist hier ein Screenshot auf OS X:

enter image description here

+0

@MartjinCourteaux Danke. Wäre es möglich, auch Text hinzuzufügen (wie "Bitte geben Sie eine gültige Nummer ein" oder muss ich dafür ein JPanel verwenden?) – David

+0

Zwei Optionen zum Hinzufügen von Text: Legen Sie es als Dialogtitel fest, oder fügen Sie hinzu (wie Sie bereits hingewiesen haben) ein JPanel mit den zwei Komponenten: dem Label und dem Spinner –

+0

@MartjinCourteaux ok Noch eine Sache - ich brauche noch den Abbrechen-Button Was schlägst du vor? – David