2017-10-20 22 views
0
private void searchProduct() 
{ 
try { 
    Product p = new Product(); 
    //Read data 
    p.setId(Double.parseDouble(textID.getText())); 

    //Display data 
    textDescription.setText(String.valueOf(p.getDescription())); 
    textPrice.setText(String.valueOf(p.getUnitPrice())); 
    textUOM.setText(String.valueOf(p.getUnitOfMeasurement())); 
} 
catch(NumberFormatException e) 
{ 
JOptionPane.showMessageDialog(this.frame, "ID must be number", "Error",JOptionPane.ERROR_MESSAGE); 
} 
} 

Bonjour récemment, j'ai essayé de mettre un bouton « Recherche » pour trouver un produit que égale à ID, mais je ne sais pas comment analyser l'ID que vient de la classe de produit, j'ai une erreur.Création d'un bouton de recherche (Double ne peut pas converti en String)

+0

Également envisager d'utiliser un 'JFormattedTextField' qui a un support pour gérer les nombres – MadProgrammer

Répondre

0

Est-ce que textID.getText() est en fait une chaîne double analysable? Par exemple "10.1" fait mais "10.1" non.

toujours que je ne ce genre de conversion que j'utilise trim() pour supprimer ce espaces blancs supplémentaires comme suit:

String stringValue = textID.getText(); 
if(stringValue != null) { 
    stringValue = stringValue.trim(); 
} 
double doubleValue = Double.parseDouble(stringValue); 

Se ici http://docs.oracle.com/javase/8/docs/api/java/lang/Double.html#valueOf-java.lang.String- comment éviter NumberFormatException en utilisant une expression régulière en texte chaîne avant essayer de le convertir doubler.

+0

Dans le cas de' JTextField' (et en fait à peu près tout composant texte basé sur 'Document'), il ne retournera jamais 'null', pas depuis Java 1.4 ou là – MadProgrammer

+0

et textID est de type ... ??? – Doleron

+0

Fair point ..... – MadProgrammer