2015-05-09 43 views
0

我試圖讓用戶按下學生或教師的按鈕,然後將對象的詳細信息輸入到基於他們按下的對象按鈕打開的幾個文本框中,然後按下添加按鈕,它會根據他們在開始時第一次按下的對象按鈕將特定對象(學生或教師)添加到數組中。如何使一個按鈕基於JavaFx中的其他4個按鈕執行4種不同的操作?

我有處理按鈕,他們所做的就是添加相應的textFields。例如,當用戶按下學生按鈕時,我只需要這樣做,「添加」按鈕將知道將學生對象添加到對象數組中。

這裏的處理程序,創造文本框

這就是我到目前爲止的處理程序的按鈕。底部是GUI的樣子。我只需要添加按鈕知道如何添加parttimestudent,fulltimestudent等,根據點擊頂部的哪些按鈕。

 ftf.setOnAction(actionEvent -> { 
      varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4); 
      varsColumn.getChildren().addAll(vars3, vars4); 
     }); 

     ptf.setOnAction(actionEvent -> { 
      varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4); 
      varsColumn.getChildren().addAll(vars3, vars4); 

     }); 

     pts.setOnAction(actionEvent -> { 
      varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4); 
      varsColumn.getChildren().addAll(vars1, vars2); 
     }); 

     fts.setOnAction(actionEvent -> { 
      varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4); 
      varsColumn.getChildren().addAll(vars1, vars2); 
     }); 

http://i.imgur.com/irsT2xA.png

編輯:解決方案的思想。我將創建4個不同的添加按鈕,這些按鈕將基於在頂部點擊相應的對象按鈕而出現在屏幕上的相同位置,這會將對象添加到數組中。

+1

請出示一些代碼。 –

+0

增加了一些東西。 – Phriswithaph

回答

0

創建不同的處理程序:

EventHandler<ActionEvent> addStudentHandler = e -> { 
    // code to add student... 
}; 

EventHandler<ActionEvent> addFacultyHandler = e -> { 
    // code to add faculty... 
}; 

// etc... 

現在在你的其他處理程序只是選擇添加按鈕相應的處理程序:

ftf.setOnAction(actionEvent -> { 
    varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4); 
    varsColumn.getChildren().addAll(vars3, vars4); 
    addButton.setOnAction(addFacultyHandler); 
}); 

fts.setOnAction(actionEvent -> { 
    varsColumn.getChildren().removeAll(vars1, vars2, vars3, vars4); 
    varsColumn.getChildren().addAll(vars1, vars2); 
    addButton.setOnAction(addStudentHandler); 
}); 
相關問題