Hallo zusammen,
ich versuche ein kleines Programm zu erstellen, bei welchem ich Personen-Objekte einer ArrayList hinzufüge. Das qanze Funktioniert über Ein TextField, in welchem man den Namen der Person einfügen soll. Aus diesem Namen wiederum erfolgt dann die Erstellung des Objekts und dieses wird dann eben der ArrayList übergeben und in einer neuen Stage über ein Label ausgegeben.
Allerdings möchte ich die Liste gerne Alphabetisch sortieren lassen bevor sie ausgegeben wird. Ich habe versucht das ganze mittels des "Comaparable" Interfaces umzusetzen allerdings erfolgt die Ausgabe unsortiert nach Reihenfolge des hinzufügens. Villeicht könnt ihr mir ja weiterhelfen
PS: Es scheint auch so als würde bei der Ausgabe selbst etwas nicht ganz zu stimmen da die alten Objekte wohl immer wieder überschrieben werden (sieht zumindest so aus). Villeicht hat da auch wer ne Idee
ich versuche ein kleines Programm zu erstellen, bei welchem ich Personen-Objekte einer ArrayList hinzufüge. Das qanze Funktioniert über Ein TextField, in welchem man den Namen der Person einfügen soll. Aus diesem Namen wiederum erfolgt dann die Erstellung des Objekts und dieses wird dann eben der ArrayList übergeben und in einer neuen Stage über ein Label ausgegeben.
Allerdings möchte ich die Liste gerne Alphabetisch sortieren lassen bevor sie ausgegeben wird. Ich habe versucht das ganze mittels des "Comaparable" Interfaces umzusetzen allerdings erfolgt die Ausgabe unsortiert nach Reihenfolge des hinzufügens. Villeicht könnt ihr mir ja weiterhelfen
Java:
[/B]
public class MREAddingPeople extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
//Stage2
GridPane root2 = new GridPane();
Label ranking = new Label();
root2.add(ranking, 1, 1);
Scene scene2 = new Scene(root2, 800, 700);
Stage stage2 = new Stage();
stage2.setScene(scene2);
//Stage1
GridPane root = new GridPane();
TextField nameField = new TextField("Name");
Button save = new Button("Save");
root.add(nameField, 1, 1);
root.add(save, 1, 2);
Scene scene = new Scene(root, 800, 700);
primaryStage.setScene(scene);
primaryStage.show();
//-----------------------------------------------------------------------
class Participant implements Comparable {
String name;
public Participant(String name) {
this.name = name;
}
@Override
public int compareTo(Object o) {
return name.compareTo(name);
}
}
//------------------------------------------------------------------------
ArrayList<Participant> participantList = new ArrayList();
//------------------------------------------------------------------------
EventHandler<MouseEvent> saveClicked = new EventHandler<MouseEvent>() { //Click on save-Button and creation of new Person(Participant)
//Teilnehmer = Participant
@Override
public void handle(MouseEvent event) {
Participant teilnehmer = new Participant(nameField.getText());
participantList.add(teilnehmer);
Collections.sort(participantList);
//Label LabelX = new Label();
for(int i = 0; i < participantList.size(); i++) {
Text label = new Text();
label.setText(participantList.get(i).name);
root2.add(label, 2, i);
}
//root2.add(LabelX, 1, 1);
stage2.show();
}
};
save.addEventHandler(MouseEvent.MOUSE_CLICKED, saveClicked);
}
public static void main(String[] args) {
launch(args);
}
}
[B]
PS: Es scheint auch so als würde bei der Ausgabe selbst etwas nicht ganz zu stimmen da die alten Objekte wohl immer wieder überschrieben werden (sieht zumindest so aus). Villeicht hat da auch wer ne Idee