У меня проблемы с удалением выбранного элемента в моем графическом интерфейсе
У меня есть отдельный класс для элементов и класс Inventory_MP для графического интерфейса. Моя задача здесь состоит в том, чтобы удалить элемент, введенный пользователем, и позволить ему показать в интерфейсе, что он был удален. По какой-то причине я не могу удалить это. Ошибка говорит:
Исключение в потоке "AWT-EventQueue-0" java.lang.NumberFormatException: для входной строки: " 2" в java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) в java.lang.Integer.parseInt(Integer.java:481) на java.lang.Integer.parseInt(Integer.java:527)
if(e.getSource() == remButton){
String delitem = nameField.getText();
String delnum = numField.getText();
String delqty = qtyField.getText();
String delprice = priceField.getText();
Items v = new Items(delitem, delnum, Integer.parseInt(delqty), Double.parseDouble(delprice));
removeItems(delitem, delnum, delqty,delprice);
public void removeItems(String delitem, String delnum, String delqty, String delprice){
Items v = new Items();
itemModel.removeElementAt(itemCollection.indexOf(delitem)); //removes element in the JList
itemnumModel.removeElementAt(itemCollection.indexOf(delnum));
qtyModel.removeElementAt(itemCollection.indexOf(delqty));
priceModel.removeElementAt(itemCollection.indexOf(delprice));
itemCollection.remove(searchItems(delitem)); //removes element in the arrayList
itemText.setText(" ");
numText.setText(" ");
qtyText.setText(" ");
priceText.setText(" ");
window.validate();
window.repaint();
}
2 ответа
По словам ekcrisp, ошибка связана с delqty
который содержит ' '
и так нельзя разбирать int
,
Вы можете сделать некоторую предварительную обработку на delqty
, Например delqty = delqty.replace(' ', '')
должен сделать трюк в вашем случае, однако я полагаю, qtyField
это JTextField
так что пользователь может написать что угодно. Вам понадобится много предварительной обработки delqty
или умный пользователь =)
Другое решение должно заключаться в использовании хорошего компонента Swing, JSlider
или JSpinner
может быть более подходящим.
Ваша ошибка возникает при вызове Integer.parseInt, это происходит из-за пробела в начале входной строки " 2".
String delqty = qtyField.getText();
qtyField.getText();
возвращает строку с пробелом. Если вы удалите пробел в qtyField, это исправит эту ошибку, в вашем коде могут быть и другие ошибки, но вызов Integer.parseInt будет работать нормально.