Behöver hjälp med Java programmering.
Jag håller på med ett skolprojekt där vi ska skapa ett kund- och orderhanteringsprogram och har stött på ett problem. När jag vill spara en order har jag gjort en metod som ska köras när man trycker på knappen "spara order" i gränssnittet, men den verkar inte köras. Problemet är att jag får ett felmeddelande:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at glasramh.UiKundReg.sparaOrderKnapp_actionPerformed(UiKundReg.java:632)
at glasramh.UiKundReg.mav$sparaOrderKnapp_actionPerformed(UiKundReg.java)
at glasramh.UiKundReg$2.actionPerformed(UiKundReg.java:283)
at java.awt.Button.processActionEvent(Button.java:388)
at java.awt.Button.processEvent(Button.java:356)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:158)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at glasramh.UiKundReg.sparaOrderKnapp_actionPerformed(UiKundReg.java:632)
at glasramh.UiKundReg.mav$sparaOrderKnapp_actionPerformed(UiKundReg.java)
at glasramh.UiKundReg$2.actionPerformed(UiKundReg.java:283)
at java.awt.Button.processActionEvent(Button.java:388)
at java.awt.Button.processEvent(Button.java:356)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:158)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Process exited with exit code 0.
När vi söker på felmeddelandet har vi fått fram att vi försöker använda ett objekt som inte är skapat än, men vi vet inte hur vi ska ändra koden för att den ska funka. Nedan bifogas koden till metoden:
//kod i klassen UiKundReg
private void sparaOrderKnapp_actionPerformed(ActionEvent e) {
String orderId = orderNummerFält.getText();
String kundId = kundNrFält.getText();
ArrayList<OrderRad> lista = new ArrayList();
lista.addAll(order.getOrderRad()); //DET ÄR HÄR VI FÅR ETT NULL POINTER EXCEPTION
Order tmpOrder = new Order(orderId, lista);
if(kundNrFält.getText() == null){
responsLabel4.setText("Var god fyll i ordernummer");
}
else if(kundId.length() == '0'){
responsLabel4.setText("Var god fyll i kundnummer");
}
else if(lista.isEmpty() == true){
responsLabel4.setText("Var god lägg orderrad först");
}
else{
controller.läggInNyOrder(kundId, tmpOrder);
responsLabel4.setText("Order sparad.");
orderArea.removeAll();
}
}
//kod i klassen controller
public void läggInNyOrder(String nyttKundId, Order nyOrder){
kund.läggInNyOrder(nyttKundId, nyOrder);
}
//kod i klassen kund:
public void läggInNyOrder(String nyttKundId, Order nyOrder){
ordrar.add(nyOrder); //en arraylist som lagrar orderobjekt som består av arraylists av typen orderrad samt ett id-nummer
koppla.put(nyttKundId, ordrar); //en hashmap som kopplar kundnummer med ordern
}
Tack på förhand!
Obs! Är nybörjare så skriv gärna grundliga förklaringar
[Asus P5Q-E] [Q6600 G0 @ 3,6 ghz] [Scythe Yasya] [Gigabyte Gtx 460 1gb] [4x2 Gb Kingston HyperX PC8500] [OCZ ModXstream Pro 700 W ] [Crucial M4 128 gb ]
HTPC - AMD Athlon X2 5050e - M4N78-VM - Kingston HyperX 2 GB - Seagate 7200.12 1 TB - Seagate Green SATA III 2TB