2013-04-09 86 views
0

我創建了一個包含一個按鈕的「frame1」,所以如果我點擊該按鈕,按鈕操作執行的方法將檢查LinkedList是否爲空,如果是,它將設置「 addEmployee「框架可見,其中包含radioButton調用addEmployees_Auto,並單擊時,它將調用frame1中的方法」add_Auto「。這應該填充frame1中的鏈接列表,但是如果我再次單擊該按鈕,LinkedList將再次爲空。爲什麼? 不應該填寫LinkedList?linkedList雖然元素是空的

這是 「幀1」

public class Frame1 extends javax.swing.JFrame { 

    LinkedList <Employee>list2=new LinkedList <Employee>(); 
     .... 

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 

    System.out.println("size="+list2.size()); 

    if(list2.isEmpty()) 
     new AddEmployees.setVisible(true); 
} 

public void addEmployees_Auto() 
    { 

     list2.add(new Employee(20910733,"Ahmed","Manager",2700)); 
     list2.add(new Employee(20910835,"Omar","Teaacher",2100)); 
     list2.add(new Employee(20910674,"Mohammed","Manager",3000)); 
     list2.add(new Employee(20910955,"Kareem","",2700)); 
     list2.add(new Employee(20910921,"Ameer","teacher",2500)); 

    } 
} 

AddEmployee框架:

public class AddEmployees extends javax.swing.JFrame { 
      ... 

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)  
{           

    if(jRadioButton2.isSelected()){ 

     new Frame1().addEmployees_Auto(); 
     this.setVisible(false); 
    } 

}  
+0

你的'add_Auto'方法在哪裏? – 2013-04-09 18:39:43

+0

這個'new AddEmployees.setVisible(true);'甚至不應該編譯...你如何運行這個代碼? – jlordo 2013-04-09 18:41:53

+0

這兩個類的交互看起來很奇怪,你能解釋一下你想達到什麼嗎?並且可能會發布一些可編譯的最小代碼來重現您所獲得的行爲? – A4L 2013-04-09 18:43:19

回答

0

我想這是因爲你正在做的:每次

new Frame1() 

AddEmployees類,因此,每次創建一個新的鏈表時,這個鏈表總是空的。你需要給Frame1調用實例的引用傳遞,如

new AddEmployees(this) 

Frame1類,並添加適當的構造,以你的AddEmployees類,例如

public AddEmployees(JFrame parent) { ... } 
+0

我不知道我是否理解正確,但沒有工作。但是在我調用addEmployees_Auto()後數組是空的。 – 2013-04-09 19:52:39