私はJavaFXMLアプリケーションを作成しています。これらのクラスをそこに置く必要があります:ListOfAllEvents、Events and Instructors。 ListOfAllEventsにはEventsのArrayListがあり、各EventにはInstructorのArrayListがあります。java ArrayListはただ1つの要素を追加しています
ボタンをクリックしてインスタンスを作成するメソッドを使用するまず、いくつかのインストラクタを作成してArrayList CurrentInstructorsに追加し、Eventのインスタンスを作成し、インストラクタのリストを割り当てて追加します。 ArrayList CurrentEventsへの私の新しいイベント。
私の問題は、CurrentEventsは1つのイベントだけを追加し、2回目に新しいイベントを作成するメソッドを呼び出すと、2番目のイベントは、現在のCurrentInstructorsが正しく動作しても最初のイベントを置き換えます。
私を助けることができますか?私はJavaの初心者ですから、すべてのアドバイスに感謝します。
マイコード:
public class FXMLDocumentController implements Initializable {
(...)
private ArrayList<Instructor> CurrentInstructors = new ArrayList<Instructor>();
private ArrayList<Event> CurrentEvents = new ArrayList<Event>();
@FXML
private void AddInstructor_Click(ActionEvent event) {
TextInputDialog dialog = new TextInputDialog("");
Optional<String> result = dialog.showAndWait();
if (result.isPresent()){
Instructor newInstructor = new Instructor(result.get());
CurrentInstructors.add(newInstructor);
}
}
private void NewEvent() {
Event newEvent = new Event(EventName.getText());
//this is the problematic row:
CurrentEvents.add(newEvent);
newEvent.setInstructors(CurrentInstructors);
CurrentInstructors.clear();
}
(...)
}
インストラクタークラス:
public class Instructor {
private String name;
public String getName() {
return name;
}
public Instructor(String name){
this.name = name;
}
}
イベント・クラス:
public class Event {
private String name;
private ArrayList<Instructor> Instructors = new ArrayList<Instructor>();
public Event(String name){
this.name = name;
}
//getters, setters
}
まともな回答を得るためには、有効な[mcve]を作成して投稿したいと思うでしょう。これはあなたのプログラム全体ではなく、むしろここに投稿するのに十分小さい新しい**小さな**プログラム、私たちにとって問題を示すものです。 –
要素を削除したくない場合は、 'CurrentInstructors.clear();'を使用しないでください。 –
ようこそ! [ツアー](ツアー)を見て回り、 [ヘルプセンター](/ help)、特に [よくある質問はどうすればよいですか?](/ help/how )、そして[ここではどのような話題について聞くことができますか?](/ help/on-topic) [Java命名規則](http://www.oracle.com/technetwork/java/codeconventions-135099.html)を読んで従ってください。 –