2013-02-10 28 views
1

我正在寫一個Java(Swing)應用程序,我試圖在ArrayList中存儲東西。 我的計劃是首先實例化一個類,在該類中設置一些變量,然後將該類添加到ArrayListJava Swing收集不對吧?

所以我有這個類:

public class CollectionClass { 

private ArrayList<OwnerClass> owners; 

public CollectionClass() { 

    owners = new ArrayList<OwnerClass>(); 

} 


public void AddOwner(OwnerClass oc) { 
    owners.add(oc); 
} 
} 

這個類:

public class OwnerClass { 
public int id = 0; 
public String name = ""; 
public String employeeNr=""; 
} 

現在在我的對話我有這樣的:

CollectionClass myCC; 

public InvoerNewOwner(CollectionClass cc) { 

      myCC = cc; 
     btSave.setActionListener(new ActionListener() { 
     OwnerClass oc = new OwnerClass(); 

     oc.name = txtOwner.getText();    <<< 
     oc.employeeNr = txtEmployeeNr.getText(); <<< 

     myCC.addOwner(oc);       <<< 

    }); 

我上3的錯誤標有< < <的行。錯誤是「error: <identifier> expected

我在這裏做錯了什麼?

這不是創建對象集合的好方法嗎?

+1

使用setters來設置變量值。 – BobTheBuilder 2013-02-10 14:11:44

+0

@baraky ** NO!**安裝者和獲取者**過度使用**,在這種情況下毫無意義。 – Doorknob 2013-02-10 14:12:51

+0

@門把手對不起,但你是非常錯誤的。吸氣劑和貼劑不會被過度使用。說相反是缺乏經驗的證明。公共訪問者應該被禁止,並且違背所有良好的面向對象操作。請參閱此[問題](http://stackoverflow.com/questions/565095/are-getters-and-setters-evil)瞭解更多信息。 – 2013-02-10 16:00:54

回答

6
btSave.setActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     OwnerClass oc = new OwnerClass(); 

     oc.name = txtOwner.getText(); 
     oc.employeeNr = txtEmployeeNr.getText(); 

     myCC.addOwner(oc); 
    } 
}); 

您必須在actionPerformed事件中包含所有您想要執行的操作。

+1

門把手,當你問一個問題,人們測試你的代碼和評論時,如果你沒有解釋地刪除你的問題,你會很粗魯。 – 2013-02-10 16:45:03

+0

@dystroy我意識到我正在向函數傳遞'0'。我不需要這個問題,所以我刪除了它。 – Doorknob 2013-02-10 16:56:45