Ok, hier ist meine GUI-Klasse (kurzgeschlossen)Warum fügt die Methode add, die von der ActionListener-Klasse aufgerufen wird, kein Element zur Auflistung hinzu?
public class GUI {
private DataContainer dataContainer;
public GUI(DataContainer dataContainer){
this.dataContainer = dataContainer;
initGUI();
}
class RegisterListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e){
String message;
String firstName = registerPanelFirstNameTextField.getText();
String lastName = registerPanelLastNameTextField.getText();
String login = registerPanelLoginTextField.getName();
String password = registerPanelPasswordTextField.getText();
String adress = registerPanelAdressTextField.getText();
Client client = new Client(firstName, lastName, login, password, adress);
boolean registerCheck = dataContainer.registerClient(client);
if (registerCheck) {
message = "SUCCES!";
} else {
message = "FAILURE!";
}
JOptionPane.showMessageDialog(new JFrame(), message);
}
}
Und hier ist meine Datacontainer-Klasse (auch kurzgeschlossen):
public class DataContainer implements Subject {
public boolean workingStatus = true;
private List<Client> clientList = new ArrayList<>();
private List<Auction> auctionList = new ArrayList<>();
private List<Observer> observersList = new ArrayList<>();
public boolean registerClient(Client client) {
String testLogin = client.getLogin();
boolean isClientOnList = isClientOnList(testLogin);
if (isClientOnList) {
return false;
} else {
addClientToList(client);
return true;
}
}
private void addClientToList(Client client) {
clientList.add(client);
System.out.println(clientList);
}
Und hier ist meine Frage - warum aus dem Register Hörer aufgerufen Methode leer Sammlung gibt . SysOut druckt [null]
. Ich habe JUnit und Reflexion verwendet, um addClientToList()
direkt zu testen, und es funktioniert, aber es funktioniert einfach nicht, wenn Sie auf die Schaltfläche klicken. Und ja, in meiner Klasse habe ich das neue Objekt erstellt und es an den GUI-Konstruktor übergeben.
Haben Sie debuggen? Bist du sicher, dass "isClientOnList" falsch ist? Sind Sie sicher, dass "client" nicht null ist? Beachten Sie, dass '[null]' keine leere Sammlung ist, sondern eine Sammlung mit einem Element, das 'null' ist. Ist das dein tatsächlicher Code? Bitte geben Sie eine [mcve] –
Es ist schön, dass Sie den Code gekürzt haben, aber das bedeutet nicht, Vollständigkeit zu opfern –