Forumdelen sponsras av

Varför fungerar inte "ta bort"- JButton?

Trädvy Permalänk
Medlem
Registrerad
Mar 2018

Varför fungerar inte "ta bort"- JButton?

Jag försöker göra en JButton för att ta bort en kund, men kunden finns kvar efter jag använt knappen i interfacet. Såhär ser koden ut i interfacet:

btnRemoveCustomer = new JButton("Ta bort kund"); btnRemoveCustomer.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String cNumberFind = customerNbrTextField.getText(); { String [] tmpCustomer = controller.findCustomer(cNumberFind); if (tmpCustomer !=null) { controller.removeCustomer(cNumberFind); lblNewKund.setText("Kund borttagen"); } else { lblNewKund.setText("Kund hittades inte")

och i min controller:

public void removeCustomer(String CNumber) { //DELETE CUSTOMER Customer customer = customerRegister.getCustomer(CNumber); if (customer != null) customerRegister.removeCustomer(customer); }

denna finns i klassen kundregister

public boolean removeCustomer(Customer customer) { return customers.remove(customer);

nån som kan se nåt fel i koden?

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Skrivet av EmelieH046:

Jag försöker göra en JButton för att ta bort en kund, men kunden finns kvar efter jag använt knappen i interfacet. Såhär ser koden ut i interfacet:

btnRemoveCustomer = new JButton("Ta bort kund"); btnRemoveCustomer.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String cNumberFind = customerNbrTextField.getText(); { String [] tmpCustomer = controller.findCustomer(cNumberFind); if (tmpCustomer !=null) { controller.removeCustomer(cNumberFind); lblNewKund.setText("Kund borttagen"); } else { lblNewKund.setText("Kund hittades inte")

och i min controller:

public void removeCustomer(String CNumber) { //DELETE CUSTOMER Customer customer = customerRegister.getCustomer(CNumber); if (customer != null) customerRegister.removeCustomer(customer); }

denna finns i klassen kundregister

public boolean removeCustomer(Customer customer) { return customers.remove(customer);

nån som kan se nåt fel i koden?

Det känns som det finns flera ställen det skulle kunna bli fel här och samtidigt flera sätt som felet kan visa sig.
Vi vet exempelvis inte vad du menar när du säger "kunden finns kvar".

Kan det vara så att :
Du inte laddar om eventuell ui-komponent som listar alla kunder?
customerRegister.removeCustomer() inte gör vad du tror den gör?
Du har flera kunder med samma kundnummer?

Om du steppar igenom koden kommer det nog visa sig väldigt snabbt var felet ligger.

Lycka till!

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Registrerad
Mar 2018

@Leedow:

okej alltså problemet är att när jag använder knapp "ta bort kund" så står det i mitt response field att "kunden är borttagen", men när jag söker på den efter det med systemets "hitta" knapp så dyker kunden upp.. alltså den finns kvar. Inte någon som kan se vad som är fel??

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Skrivet av EmelieH046:

@Leedow:

okej alltså problemet är att när jag använder knapp "ta bort kund" så står det i mitt response field att "kunden är borttagen", men när jag söker på den efter det med systemets "hitta" knapp så dyker kunden upp.. alltså den finns kvar. Inte någon som kan se vad som är fel??

Antingen så ligger kunden kvar i någon lista som inte har uppdaterats efter att kunden har tagits bort eller så gör inte koden i removeCustomer() korrekt. Finns många scenarion men det går ut på att du måste undersöka. Vi har ingen aning om vad koden gör på djupet då du endast har postat kod som kallar på metoderna.

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Aug 2017

En annan orsak kan vara att customerRegister.getCustomer(CNumber) inte fungerar som du tror och returnerar null. Då körs ju inte customerRegister.removeCustomer(customer). Det jag skulle ha gjort är att utnyttja den bool som returneras där (antar den returnerar true om borttagningen lyckats?) och skicka den vidare uppåt för att lägga till caset att "Kund inte hittad, borttagning misslyckades" som alternativ till "Kund borttagen".