2012-12-01 6 views
1

J'ai quelques boutons sur mon panneau et à chaque fois que je clique dessus, une boîte de dialogue apparaît. Il a un bouton d'annulation intégré. Maintenant, quand je clique sur le bouton d'annulation au début du code sans entrer la quantité dans la boîte de dialogue, il dit, "Ceci est un nombre invalide". Cette ligne ne doit apparaître que si l'utilisateur entre des alphabets ou des symboles et non en appuyant sur Annuler. Pouvons-nous résoudre cela?Bouton Annuler dans showinputdialogbox

+2

* "Pouvons-nous résoudre ce problème?" * Pour une meilleure aide plus rapidement, postez un [SSCCE] (http://sscce.org/). Notez également que 'showinputdialogbox' n'est pas une méthode dans le J2SE. –

+1

BTW - est-ce que l'une des personnes ou les deux qui ont pensé que «cette question montre l'effort de recherche, est-elle utile et claire» pourrait-elle expliquer son raisonnement? –

+1

@AndrewThompson robo-reviewers - ils ne reviendront pas vous lire ;-) – kleopatra

Répondre

0

Essayez de faire,

String Input = JOptionPane.showInputDialog(null,"Enter the number?", 
    "Number", JOptionPane.QUESTION_MESSAGE);   
if (Input.equals("")) 
{ 
    JOptionPane.showMessageDialog(null,"This is an invalid number"); 
} 

Le lien suivant explique encore mieux: Simple Data Validation.

+0

Cela vérifie seulement un 'String' vide. Qu'en est-il des «alphabets ou symboles», comme le demande l'affiche? – trashgod

2

D'abord, vous avez besoin d'un moyen de décider si String représente un nombre; la méthode ci-dessous utilise Double.valueOf() pour décider.

private Double valueOf(String s) { 
    try { 
     return Double.valueOf(s); 
    } catch (NumberFormatException e) { 
     return null; 
    } 
} 

Voici un exemple de la façon dont vous pouvez utiliser la méthode:

private void display() { 
    String input = JOptionPane.showInputDialog(
     null, "Enter a number?", "Number", JOptionPane.QUESTION_MESSAGE); 
    Double value = valueOf(input); 
    JOptionPane.showMessageDialog(null, "The value " + input 
     + " is " + (value != null ? "valid" : "invalid") + "."); 
} 

Voir aussi How to Make Dialogs.

0

Chaîne d'entrée = JOptionPane.showInputDialog (null, "Entrez le numéro?",
"Numéro", JOptionPane.QUESTION_MESSAGE);
si (Input.matches (("((- | \ +)? [0-9] + (\. [0-9] +)?) +"))) { JOptionPane.showMessageDialog (null, "nombre valide"); } else { JOptionPane.showMessageDialog (null, "Ceci est un nombre non valide"); }