Java auf Buttonklick warten lassen?
Ich möchte In Java ein Array an Spielern erzeugen lassen. Dazu soll sich für jeden Spieler ein extra Fenster öffnen (ich weiß, das ist nicht ganz elegant, aber darum geht es im Moment nicht). In diesem Fenster ist dann ein TextField und ein Button. Nach dem Klick des Buttons soll der im TextField eingegebene Name als Spielername übergeben werden. Der Code den ich geschrieben habe wartet aber nicht auf das klicken auf "OK", sondern übergibt den namen (in dem fall dann NULL direkt).
private void SpielerErstellen() {
for (int i = 0; i < SpielerListe.length; i++){
int SpielerNummer = i + 1;
String title = "Monopoly - Erstelle Spieler " + SpielerNummer;
CreatePlayer dialog = new CreatePlayer(title);
SpielerListe[i] = new Spieler(i + 1, dialog.getName());
}
}
CreatePlayer ist dabei ein JDialog.
2 Antworten
Verwende doch einfach einen Input Dialog.
https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html#input
Einfach einen ActionListener zu deinem Button hinzufügen, der dann beim Click den gewünschten Code (also das übergeben des Spielernamens) ausführt.
JButton button = new JButton("OK");
//Action Listener hinzufügen
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Wenn der Knopf gedrückt ist wird das hier ausgeführt
CreatePlayer dialog = new CreatePlayer(title);
SpielerListe[i] = new Spieler(i+1, dialog.getName());
}
});
Ich glaube du verstehst die Frage falsch, der Button ist ein Objekt innerhalb von CreatePlayer und nicht der hier zu sehenden Klasse
Das
muss natürlich ausserhalb des Listeners, my bad.