Hallo,
folgendes Problem:
Ich arbeite an einem Tunierverwaltungsprogramm und möchte in der GUI wie folgt vorgehen
Ich hatte probiert bei den jeweiligen neuen Scenen showAndWait() zu benutzen, dann wurde zwar bei der Trainereingabe gestoppt aber eine Exception geworfen und das Programm war damit auch am Ende.
Die folgenden Code-Auszüge sind nur aus dem JavaFX - Teil. Der eigentliche Programmcode (Mannschaft, Trainer, Spieler usw.) sollte nicht relevant sein denke ich, da ja hier nur die Konstruktoren davon aufgerufen werden.
Methode mannschaftErzeugen
Methode trainerErzeugen
Methode spielerErzeugen
Start - Methode
IDE ist Eclipse, Betriebssystem Win 10.
folgendes Problem:
Ich arbeite an einem Tunierverwaltungsprogramm und möchte in der GUI wie folgt vorgehen
- Tuniermodus auswählen
- Mannschaft erstellen (Mannschaftsname, SpielerAnzahl)
- Trainer erstellen --> nur bei index = 0
- Spieler erstellen --> bei allen Indizes > 0 bis zur eingegebenen SpielerAnzahl
Ich hatte probiert bei den jeweiligen neuen Scenen showAndWait() zu benutzen, dann wurde zwar bei der Trainereingabe gestoppt aber eine Exception geworfen und das Programm war damit auch am Ende.
Die folgenden Code-Auszüge sind nur aus dem JavaFX - Teil. Der eigentliche Programmcode (Mannschaft, Trainer, Spieler usw.) sollte nicht relevant sein denke ich, da ja hier nur die Konstruktoren davon aufgerufen werden.
Methode mannschaftErzeugen
Java:
private Mannschaft mannschaftErzeugen(String mannschaftsname, String spielerAnzahl) {
int zahlSpieler = Integer.parseInt(spielerAnzahl);
Mannschaft aktuell = new Mannschaft(mannschaftsname, zahlSpieler);
for (int i = 0; i < zahlSpieler+1; i++) {
if (i == 0) {
aktuell.mitglieder[i] = trainerErzeugen(mannschaftsname);
} else if (i > 0){
aktuell.mitglieder[i] = spielerErzeugen(mannschaftsname, i);
}
}
return aktuell;
}
Methode trainerErzeugen
Java:
private Trainer trainerErzeugen(String mannschaftsname) {
//Trainer erzeugen
GridPane grid2 = new GridPane();
grid2.setPadding(new Insets(10, 10, 10, 10));
grid2.setHgap(13);
grid2.setVgap(8);
// Label vorname
Label vorname = new Label("Vorname:");
grid2.add(vorname, 0, 0);
// Field vorname
TextField vornameInput = new TextField();
vornameInput.setPromptText("Vorname eingeben");
grid2.add(vornameInput, 1, 0);
// Label nachname
Label nachname = new Label("Nachname:");
grid2.add(nachname, 0, 1);
// Field Nachname
TextField nachnameInput = new TextField();
nachnameInput.setPromptText("Nachname eingeben");
grid2.add(nachnameInput, 1, 1);
// Button submit
Button submit2 = new Button("Submit");
grid2.add(submit2, 1, 2);
submit2.setOnAction( e -> {
trainerAktuell = new Trainer(this.mannschaftsname, vornameInput.getText(), nachnameInput.getText());
});
trainer = new Scene(grid2);
window.setScene(trainer);
window.showAndWait();
return trainerAktuell;
}
Methode spielerErzeugen
Java:
private Spieler spielerErzeugen(String mannschaftsname, int index) {
//Spieler erzeugen
GridPane grid3 = new GridPane();
grid3.setPadding(new Insets(10, 10, 10, 10));
grid3.setHgap(13);
grid3.setVgap(8);
//Label index
Label indexSpieler = new Label("Bitte geben Sie den " + index + ". Spieler ein:");
grid3.add(indexSpieler, 0, 0);
// Label vorname
Label vornameSpieler = new Label("Vorname:");
grid3.add(vornameSpieler, 0, 1);
// Field vorname
TextField vornameSpielerInput = new TextField();
vornameSpielerInput.setPromptText("Vorname eingeben");
grid3.add(vornameSpielerInput, 1, 1);
// Label nachname
Label nachnameSpieler = new Label("Nachname:");
grid3.add(nachnameSpieler, 0, 2);
// Field Nachname
TextField nachnameSpielerInput = new TextField();
nachnameSpielerInput.setPromptText("Nachname eingeben");
grid3.add(nachnameSpielerInput, 1, 2);
// Label Trikotnummer
Label trikotnummer = new Label("Trikotnummer:");
grid3.add(trikotnummer, 0, 3);
// Field Trikotnummer
TextField trikotnrInput = new TextField();
trikotnrInput.setPromptText("Trikotnummer eingeben");
grid3.add(trikotnrInput, 1, 3);
// Button submit
Button submit3 = new Button("Submit");
submit3.setOnAction( e -> {
spielerAktuell = new Spieler(this.mannschaftsname, vornameSpielerInput.getText(), nachnameSpielerInput.getText(),
Integer.parseInt(trikotnrInput.getText()));
});
grid3.add(submit3, 1, 4);
// Scene
spielerEingabe = new Scene(grid3);
window.setScene(spielerEingabe);
window.showAndWait();
return spielerAktuell;
}
Start - Methode
Java:
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
window.setTitle("Tunierverwaltung");
//Start - Auswahl Pokalmodus oder AlleGegenAlle
HBox hbox = new HBox();
Button alleGegenAlle = new Button("AlleGegenAlle");
alleGegenAlle.setOnAction( e -> window.setScene(mannschaftsEingabe));
Button pokalmodus = new Button("Pokalmodus");
pokalmodus.setOnAction(e -> window.setScene(mannschaftsEingabe));
hbox.getChildren().addAll(alleGegenAlle, pokalmodus);
start = new Scene(hbox);
//---------------------------------------------------------------------------
//Mannschaft erzeugen
GridPane grid1 = new GridPane();
grid1.setPadding(new Insets(10, 10, 10, 10));
grid1.setHgap(13);
grid1.setVgap(8);
//Label mannschaftsname
Label mannschaftsname = new Label("Mannschaftsname:");
grid1.add(mannschaftsname, 0, 0);
//Field mannschaftsname
TextField mname = new TextField();
mname.setPromptText("Mannschaftsname eingeben");
grid1.add(mname, 1, 0);
//Label Anzahl der Spieler
Label anzahlSpieler = new Label("Anzahl der Spieler:");
grid1.add(anzahlSpieler, 0, 1);
//Field Anzahl der Spieler
TextField zahlSpieler = new TextField();
zahlSpieler.setPromptText("Spieleranzahl eingeben");
grid1.add(zahlSpieler, 1, 1);
//Button submit
Button submit1 = new Button("Submit");
submit1.setOnAction( e -> {
mannschaftErzeugen(mname.getText(), zahlSpieler.getText());
});
grid1.add(submit1, 1, 2);
mannschaftsEingabe = new Scene(grid1);
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
window.setScene(start);
window.show();
}
IDE ist Eclipse, Betriebssystem Win 10.