Создание кнопки поиска (Double не может быть преобразован в строку)
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);
}
}
Здравствуйте, недавно я попытался поставить кнопку "Поиск", чтобы найти продукт, который равен идентификатору, но я не знаю, как проанализировать идентификатор, чем исходит из класса продукта, у меня ошибка.
1 ответ
Решение
Является ли textID.getText() фактически разборной двойной строкой? Например, "10.1", но "10.1" нет.
Всегда я делал это преобразование, я использую trim(), чтобы убрать лишние пробелы следующим образом:
String stringValue = textID.getText();
if(stringValue != null) {
stringValue = stringValue.trim();
}
double doubleValue = Double.parseDouble(stringValue);
Смотрите здесь http://docs.oracle.com/javase/8/docs/api/java/lang/Double.html как избежать использования NumberFormatException с помощью регулярного выражения для вывода текста в строку перед попыткой преобразовать его в двойной.