2010-07-09 4 views
0

Je pense que ceci peut être très simple, mais il avale mon temps. J'utilise TextItem In GWT dans mon application JAVA pour obtenir le prix saisi par l'utilisateur. J'essaie d'arrêter d'autoriser plus d'un point (".") Sur un élément de texte. Tous mes exercices sont allés à l'échec. J'utilise l'expression régulière; Essayez de gérer les caractères clés sur l'événement BlurHandler de TextItem à la fois me trahir un faux.TextItem dans GWT avec le problème décimal

Quelqu'un peut-il m'aider à atteindre ce qui précède? Merci d'avance.

Répondre

0

Quelque chose comme ce que j'utilise:

amount = new TextBox(); 
amount.setVisibleLength(10); 
amount.addKeyPressHandler(new KeyPressHandler() { 
    public void onKeyPress(KeyPressEvent event) { 
     if (!checkNumeric(amount.getText(), event.getCharCode())) 
      amount.cancelKey(); 
     } 
}); 


public boolean checkNumeric(String text, char keycode) { 
    if (!Character.isDigit(keycode) && keycode != '.' && keycode != '-' 
     && keycode != KeyCodes.KEY_BACKSPACE 
     && keycode != KeyCodes.KEY_TAB) { 
     return false; 
    } 
    if (keycode == '-') { 
     if (!text.isEmpty()) { 
      return false; 
     } 
    } 
    if (keycode == '.') { 
     if (text.contains(".")) { 
      return false; 
     } 
    } 

    return true; 
} 
+0

Merci pour votre réponse J'ai essayé votre code. I Définissez la valeur de la valeur vide sur 0,00 à l'aide de la propriété suivante: TextItem.setEmptyDisplayValue ("0.00"). Initialement, il va définir la valeur. Mais quand j'appuie sur un point, il permet un point même si un point est déjà présent dans TextItem. Pouvez-vous m'aider plus? Merci – vaduganathan

+0

TextItem.setEmptyDisplayValue() ne fait pas partie de GWT standard, donc je ne sais pas. Ma conjecture est que la valeur d'affichage "0.00" n'est pas la même que la valeur .getText() (qui est probablement ""). J'essaierais TextItem.setText ("0.00") pour initialiser. – BJB

Questions connexes