Jspinner cambia la virgola

di il
5 risposte

Jspinner cambia la virgola

Clicco su un JSpinner e scrivo 1.50 clicco fuori da questo JSpinner e mi modifica il testo in 150, mentre se se metto la virgola così"," lo prende giusto, come risolvere il problema? Grazie

5 Risposte

  • Re: Jspinner cambia la virgola

    p0ll0_ ha scritto:


    Clicco su un JSpinner e scrivo 1.50 clicco fuori da questo JSpinner e mi modifica il testo in 150, mentre se se metto la virgola così"," lo prende giusto, come risolvere il problema? Grazie
    Se la virgola funziona per i numeri frazionari, allora hai ragionevolmente la macchina con la localizzazione italiana.

    Quindi la domanda è: vuoi impostare un Locale fisso solo per quello spinner? (e c'è un motivo specifico?) Oppure vuoi lanciare la tua applicazione in modo che usi un altro Locale predefinito es. l'inglese?
    Insomma perché non si deve adattare alla localizzazione della macchina?
  • Re: Jspinner cambia la virgola

    Voglio che capisca sia l'inglese che l'italiano. La motivazione è che si da solitamente per scontato che se uno scrive 1.5 si intende 1,5...
  • Re: Jspinner cambia la virgola

    p0ll0_ ha scritto:


    Voglio che capisca sia l'inglese che l'italiano. La motivazione è che si da solitamente per scontato che se uno scrive 1.5 si intende 1,5...
    No, non è proprio (sempre) così. Le applicazioni Swing possono (e dovrebbero) essere fatte per gestire la localizzazione in modo da adattarsi alle impostazioni della macchina. Ovvero: io utente italiano che ho un PC con lingua italiana settata, mi aspetto di poter scrivere 1,5 nello spinner della tua applicazione. Se compili e impacchetti la tua applicazione e la fornisci ad un utente inglese con PC con settata la lingua inglese, lui si aspetta di poter scrivere 1.5 nello spinner. E questo funziona già così di base. (mi riferisco al JSpinner ma vale e dovrebbe valere in generale).

    Se vuoi tentare di stravolgere queste "regole", dovresti entrare più nei meandri dei componenti Swing e nella varia documentazione a disposizione (e magari sbirciare nei sorgenti del framework). Cosa che molto probabilmente ti farebbe andare un po' "fuori tema" e sicuramente ti porterebbe via molto più tempo di quello che già adesso immagino stai impegnando ...
  • Re: Jspinner cambia la virgola

    Non potremmo fare una cosa di questo genere ? Un evento che ogni volta che aggiungo un carattere o una stringa nello JSpinner controlla che sia un "." e se di questo si tratta lo sostituisce con una virgola? Grazie...
  • Re: Jspinner cambia la virgola

       jSpinner_prezzo.setValue((jSpinner_prezzo.getValue()+"").replace(".", ","));
    Ho provato a fre così in focusLost Quando esco dal JSpinner rimane la scritta 1.8, ma mi da questo errore
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: illegal value
    at javax.swing.SpinnerNumberModel.setValue
    Che diamine succede? Grazie
Devi accedere o registrarti per scrivere nel forum
5 risposte