Я пытаюсь создать небольшую систему POS. И в этом мне нужно добавить разные элементы в список до «создания продажи» (который позже я буду вставлять в базу данных в виде отдельных инструкций INSERT)Добавление строк значений в текстовое поле при нажатии кнопки
Сейчас у меня проблема с кнопкой, которая добавляет продажи в текстовую область. Он работал нормально, когда у меня была только одна продажа. Но начал давать NullPointerException
, когда я сделал значения в массив и петельные его ..
Вот мой код:
if (action.getSource() == btnAdd)
{
//values
String[] salesNo= null;
String[] itemNo = null;
String[] staffNo = null;
String[] customerNo = null;
Date date= new Date();
int[] quantity = null;
double[] finalprice = null;
//inserting itemno------------------------
String findItemNoCommand = "SELECT itemNo FROM `item` WHERE itemName = '" + itemList.getSelectedItem() + "'";
try
{
itemNo[count] = viewValue(conn, findItemNoCommand);
}
catch (SQLException e)
{
e.printStackTrace();
}
//inserting customerno------------------------
customerNo[count] = (String) customerList.getSelectedItem();
staffNo[count] = "null"; // to be developed
//checking and insertion of quantity------------------------
double tempquantity = Double.parseDouble(quantityText.getText());
if(tempquantity % 1 == 0)
{
quantity[count] = (int) tempquantity; //Checking if the value is an integer
}
else
{
JOptionPane.showMessageDialog(alphaPOS,
"You need to enter a whole number for Quantity",
"ERROR",
JOptionPane.ERROR_MESSAGE);
}
//calculating final price from price of item------------------------
String tempprice = null;
String findPriceCommand = "SELECT sellingprice FROM `item` WHERE itemNo = '" + itemNo + "'";
try
{
tempprice = viewValue(conn, findPriceCommand);
}
catch (SQLException e)
{
e.printStackTrace();
}
Double price = Double.parseDouble(tempprice);
finalprice[count] = quantity[count] * price;
//------------------------------------------------------------------
salesdata[count++] = new Sales(salesNo[count], itemNo[count], staffNo[count], customerNo[count], date, quantity[count], finalprice[count]);
salesTextArea.setText(" "+"\n");
int i =0;
while (salesdata[i] != null)
{
salesTextArea.insert("\t" + salesdata[i].finalprice, 2);
salesTextArea.insert("\t" + salesdata[i].quantity, 2);
salesTextArea.insert("\t" + dateFormat.format(salesdata[i].date), 2);
salesTextArea.insert("\t" + salesdata[i].customerNo, 2);
salesTextArea.insert("\t" + salesdata[i].staffNo, 2);
salesTextArea.insert("" + salesdata[i].itemNo, 2);
//salesTextArea.insert("\n", 2);
i++;
}
salesTextArea.insert("Item No \t StaffNo\t CustomerNo \t Date and Time \t\t Quantity \t Final Price", 0); }
salesdata
объявлен здесь: static Sales salesdata[] = new Sales[50];
Код компилируется нормально, но я получаю исключение. Почему? Приветствуется любая помощь или подсказки относительно того, что я делаю неправильно :)
Что еще я могу инициализировать? Невозможно инициализировать его как «» либо. – Tsar
@ShifaTsar Вы хотите инициализировать его следующим образом: 'String [] itemNo = new String [size];', предполагая, что вы знаете, какой размер он должен быть. Если вы этого не сделаете, я бы предложил посмотреть в 'ArrayList', который может расти по мере его использования. – resueman
А, спасибо. Я продолжаю забывать ArrayList. :) – Tsar