2011-06-01 8 views
9

necesitaba un widget para seleccionar un puerto TCP/UDP, así que escribí lo siguiente:Desactivación dígitos agrupar en un JSpinner

public static JSpinner makePortSpinner() 
{ 
    final JSpinner spinner = new JSpinner(
      new SpinnerNumberModel(DefaultPort, 1024, 65535, 1)); 
    spinner.setFont(Monospaced); 
    return spinner; 
} 

... Monospaced y DefaultPort siendo constantes estáticas.

Me gustaría eliminar los caracteres de agrupación de dígitos de la pantalla resultante. Por ejemplo, el valor predeterminado de 55024 se muestra como "55,024", donde me gustaría que fuera "55024". Sé que NumberFormat directamente, como podría usar con JFormattedTextField, tiene un método setGroupingUsed(boolean) para este propósito. ¿Hay algo como esto para JSpinner? ¿Debo incluir la subclase SpinnerNumberModel?

+0

((-: Que, con números de puerto era exactamente mi problema también –

Respuesta

13

establecer el formato del editor de números en su spinner:

spinner.setEditor(new JSpinner.NumberEditor(spinner,"#")); 

o para ser más explícita:

JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner); 
editor.getFormat().setGroupingUsed(false); 
spinner.setEditor(editor); 
+1

El segundo _almost_ funciona: inicialmente se dimensiona y se dibuja con agrupación, pero eso desaparece si lo edito o lo fuerzo a volver a dibujar. Sin embargo, el primero parece funcionar bien, ¡muchas gracias! –

Cuestiones relacionadas