Wie kann ich während eines ActionListeners Abfragen in Java machen?

... komplette Frage anzeigen

2 Antworten

Ich glaube, wenn ich es richtig verstehe, es wäre am sinnvollsten, wenn du die ActionListener aufsplittest.

Du hast also zwei ActionListener-Klassen. Du meldest die erste ALK an die Buttons an, welche handeln, welcher Held ausgewählt werden soll. Nachdem das passiert ist, kannst du den Listener wieder abmelden und die nächste Listenerklasse an den Buttons anmelden. So musst du die Buttons nicht neu erzeugen und kannst die Aufgaben (Auswahl des Helden / Aktion des Helden) voneinander trennen.

Antwort bewerten Vielen Dank für Deine Bewertung

Habe Schwierigkeiten dein Problem zu verstehen.

Versuch die Frage doch bitte ein wenig klarer zu formulieren (evtl. mit Hilfe von Pseudocode).

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von bishare
03.01.2016, 16:10

(Mal gucken, ob ich es schaffe xD 

private JButton B1;

private JButton B2;

private int Button = 0;

(Verkürze mal bisschen) Habe jetzt 2 Buttons und ein Parameter. Wenn ich auf B1 klicke, wird Button = 1 gesetzt.

Wenn ich auf B2 klicke, wird Button = 2 gesetzt.

B1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Button = 1
}

B2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Button = 2
}

Am Anfang des Programms wird in einem Textarea nach einem Helden gefragt. Den Helden kann man dann aussuchen. Wenn man dann auf Heldgenerieren klickt, wird er generiert und es wird sofort nach der nächsten Aktion gefragt.

btnHeldGenerieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

Textarea.setText("Suchen Sie sich einen Helden aus. 1 für A oder 2 für B");

if (Button ==1) {

(Bild von Held1 wird angezeigt)

}

else if (Button == 2) {

(Bild von Held2 wird angezeigt)

}

//Jetzt soll hier noch mal abgewartet werden, bis der Benutzter wieder einen der 2 Button klickt

Textarea.setText("Wollen Sie (1) Kämpfen oder (2) Fliehen");

if (Button == 1) {

kämpft();

}

else if (Button == 2) {

flieht();

}

//Das ganze Programm läuft jetzt über den Button Actionlistener Heldgenerieren. Habe es jetzt irgendwie so gelöst, dass es doch über die Buttons B1 und B2 laufen und immer neue angezeigt werden, damit man wieder aussuchen kann. (Klicke ich B1, werden B1 und B2 unsichtbar und auf der gleichen Stelle kommen Bu1 und Bu2...)

}}

Wie mache ich es, dass ich nur die 4 Buttons muss und nicht immer neue Generieren muss?

0

Was möchtest Du wissen?