2016-07-26 10 views
0
は、ここで[OK]を(ショート)私のGUIクラス

ActionListenerクラスから呼び出されたメソッドを追加しても、コレクションに要素が追加されないのはなぜですか? Javaの

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); 
    } 
} 

だし、ここに(も短絡)私のデータコンテナクラスです

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); 
} 

そして、ここで私の質問です - レジスタリスナーから呼び出されたメソッドは空のコレクションを与える理由。 SysOutは[null]を出力します。私はJUnitとリフレクションを使って直接addClientToList()をテストしていますが、それは動作しますが、ボタンをクリックしたときは単純に反映されません。そして、はい、私のクラスで私は新しいDataContainerオブジェクトを作成し、それをGUIコンストラクタに渡しました。

+2

あなたはデバッグましたか? 'isClientOnList'がfalseであると確信していますか? 'client'がnullでないことは確かですか? '[null]'は空のコレクションではなく、一つの要素が 'null'のコレクションです。これは実際のコードですか? [mcve] –

+0

を提供してください。コードを短縮したのはいいことですが、それは完全性を犠牲にすることを意味するものではありません –

答えて

0

ああ右!この小さな男が見つかりました。

String login = registerPanelLoginTextField.getName(); 

、それは次のようになります:問題はここにいた

String login = registerPanelLoginTextField.getText(); 
関連する問題