Schleife auf Mausklick warten lassen

Cynric

Aktives Mitglied
Hallo zusammen,

ich programmiere gerade zur Übung Schiffe versenken und die Spielfelder bestehen dabei aus zweidimensionalen JButton-Arrays.
Jeder dieser Buttons hat einen ActionListener und ein ActionCommand (ActionCommand deshalb, um Spieler- und Gegnerfeld unterscheiden zu können).
Mein Problem ist jetzt folgendes: Die Schiffe speichere ich in einer LinkedList. In einer Schleife gehe ich dann Schiff für Schiff durch und frage die Position für eine Coordinate ab, wo das Schiff platziert werden soll. Die Position entnehme ich der Button-Position aus dem Array.
Allerdings startet die Schleife natürlich von selbst und geht die Schiffe nacheinander durch, weiß jemand, wie ich das lösen kann, also, wie ich die Schleife sozusagen darauf warten lassen kann, bis der Spieler einen Button anklickt?

Sry, wenn die Rubrik falsch ist, aber für mich zählt das schon ein wenig zur GUI, da ich ja auf die Rückgabewerte einer GUI warte.
Ansonsten bitte in die richtige Rubrik verschieben^^
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Naja, mit
Code:
wait()
und
Code:
notify()
kannst du ein Objekt warten lassen - bzw. den Thread. Dann muss man aber wieder aufpassen, welcher Thread das ist.
Vielleicht gibt es eine Lösung die diese Problematik umgeht, z.B. dass du in der ersten Phase des Spiels - der Schiffe-Platzieren-Phase - einen besonderen ActionListener an alle Buttons hängst, der beim ersten Klick das erste Schifft, beim Zweiten das nächste usw. setzt. Wenn alle Schiffte gesetzt sind, entfernst du den Listener und hängst den "normalen" an die Buttons.
Es gibt sicher noch einige andere Herangehensweisen. Ich finde bei Lösungen mit wait() oder sleep() lohnt es sich über Alternativen nachzudenken.
 

Cynric

Aktives Mitglied
Muss ich mir dann eine eigene ActionListener-Klasse schreiben, die vom normalen ActionListener erbt?
Also sowas wie:
Java:
public interface FlugzeugtraegerListener extends ActionListener {
public void actionPerformed(ActionEvent e) {
...}
}
 

KrokoDiehl

Top Contributor
Fast, ich dachte etwas wie:

Java:
public class SchiffePlatzierer implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent event) {
        
        platziereSchiffAmButton( getSchiff(index), event.getSource() );
        index++;
    }    
}
 

Cynric

Aktives Mitglied
Und wie entferne ich den ActionListener dann wieder?
Weil nachdem die Schiffe platziert wurden, soll ich ja auf meinem eigenen Spielfeld nichts mehr machen können, nur noch auf dem gegnerischen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
G Schleife verlangsamen AWT, Swing, JavaFX & SWT 3
ms_cikar Update swingUtilities Repaint in der Schleife AWT, Swing, JavaFX & SWT 3
W fillRect() in Schleife spukt nur Fehler aus AWT, Swing, JavaFX & SWT 3
heinz ketchup While-Schleife in einem Service für GUI AWT, Swing, JavaFX & SWT 22
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
R MVC Observer While-Schleife AWT, Swing, JavaFX & SWT 3
L JTabbedPane mit for Schleife aufbauen AWT, Swing, JavaFX & SWT 4
I Applet BlueJ Applet - Bild mit if-Schleife zeichnen lassen AWT, Swing, JavaFX & SWT 16
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
J GridBagLayout mit Hilfe einer For-Schleife befüllen AWT, Swing, JavaFX & SWT 1
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
C SWT Tab in Schleife AWT, Swing, JavaFX & SWT 9
S Farbverlauf in for-Schleife berechnen AWT, Swing, JavaFX & SWT 4
H Swing Komponenten per Schleife auf JFrame AWT, Swing, JavaFX & SWT 4
F JLabel mittles Schleife einbinden?? AWT, Swing, JavaFX & SWT 3
D Swing JLabels in einer Schleife aktualisieren AWT, Swing, JavaFX & SWT 2
S Problem mit JLabel (Bewegung in Schleife) AWT, Swing, JavaFX & SWT 7
D Schleife für Button AWT, Swing, JavaFX & SWT 4
R for-Schleife in Applet ausgeben AWT, Swing, JavaFX & SWT 3
H Mit for-schleife die Componenten eines Frames verändern AWT, Swing, JavaFX & SWT 5
A Jedes JTextfield einer klasse in einer foreach schleife abarbeiten AWT, Swing, JavaFX & SWT 3
R jTextField in Schleife ausfuellen AWT, Swing, JavaFX & SWT 4
I Swing repaint wird in for-Schleife aufgerufen - was passiert? AWT, Swing, JavaFX & SWT 12
M Button funktioniert nicht mehr wenn Schleife läuft AWT, Swing, JavaFX & SWT 3
R zweidim. JButton-Array in Schleife -> NullPointerExceptio AWT, Swing, JavaFX & SWT 2
S JMenu und ActionListener per Schleife erzeugen AWT, Swing, JavaFX & SWT 3
R das letzte JLabel in der Schleife will nicht an seinen Platz AWT, Swing, JavaFX & SWT 2
J ActionListener nimmt keine for()-Schleife? AWT, Swing, JavaFX & SWT 4
G For-Schleife AWT, Swing, JavaFX & SWT 4
B Deklaration von vielen Buttons mit Schleife vereinfachen? AWT, Swing, JavaFX & SWT 9
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
M Schleife mit Button abbrechen AWT, Swing, JavaFX & SWT 4
T JPanel in Schleife anlegen AWT, Swing, JavaFX & SWT 7
raptorrs JTextfelder werden in while-Schleife nicht aktualisiert AWT, Swing, JavaFX & SWT 5
F Einlesen von text in textArea mittels for-schleife AWT, Swing, JavaFX & SWT 3
R Grafische Benutzereingabe in For-Schleife AWT, Swing, JavaFX & SWT 8
L vermutlich Problem in meiner for-Schleife AWT, Swing, JavaFX & SWT 6
S Mehrere Buttons in einer Schleife erzeugen . AWT, Swing, JavaFX & SWT 3
G Schleife mit repaint funktioniert nicht. AWT, Swing, JavaFX & SWT 7
A JTable Schleife AWT, Swing, JavaFX & SWT 4
G while schleife - keylistener AWT, Swing, JavaFX & SWT 4
M JDialog in for-Schleife mit Komponenten bestücken AWT, Swing, JavaFX & SWT 6
S JButton über Schleife erstellen AWT, Swing, JavaFX & SWT 4
F Frame wird nicht angezeigt nach while-Schleife AWT, Swing, JavaFX & SWT 3
R Button löst Schleife aus, danach friert die GUI ein ? AWT, Swing, JavaFX & SWT 7
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
R Scenenwechel per Mausklick AWT, Swing, JavaFX & SWT 1
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
Q-bert JTextField per Mausklick einfügen AWT, Swing, JavaFX & SWT 3
K Swing GridLayout - x und y bei Mausklick ausgeben AWT, Swing, JavaFX & SWT 4
J 2D-Grafik Linie wird nach Mausklick nicht am richtigen Ort gezeichnet AWT, Swing, JavaFX & SWT 11
L Tabelle reagiert ungewollt auf Mausklick AWT, Swing, JavaFX & SWT 6
J Labelicon bei Mausklick an den Zeiger pinnen AWT, Swing, JavaFX & SWT 7
M Mausklick an darunterliegende Komponente weiterleiten AWT, Swing, JavaFX & SWT 9
Semox Swing Kreis löschen durch Mausklick in der Nähe AWT, Swing, JavaFX & SWT 2
N Defaulttext per Mausklick auswählen AWT, Swing, JavaFX & SWT 4
P JTextArea text verschwindet bei mausklick AWT, Swing, JavaFX & SWT 5
M File-Chooser Problem (2 X Mausklick öffnen) AWT, Swing, JavaFX & SWT 11
G JTree und Mausklick? AWT, Swing, JavaFX & SWT 2
R doppelte Ausführung bei einfachem Mausklick! AWT, Swing, JavaFX & SWT 12
G Mausklick event? BITTE HELFT MIR! :( AWT, Swing, JavaFX & SWT 8
B Thumbnail-Position per Mausklick ändern AWT, Swing, JavaFX & SWT 3
S Graph zeichnen bei Mausklick AWT, Swing, JavaFX & SWT 4
F Ignoriere Mausklick falls erster Klick von Doppelklick . AWT, Swing, JavaFX & SWT 4
G JTree soll nur auf Mausklick reagieren AWT, Swing, JavaFX & SWT 10
F Mausklick AWT, Swing, JavaFX & SWT 2
M Mausklick in nicht angezeigtes JTextField simulieren AWT, Swing, JavaFX & SWT 4
C [JTable] Mausklick. AWT, Swing, JavaFX & SWT 5
M JTree Elemete zeigen nach 2. Mausklick Object an. Warum? AWT, Swing, JavaFX & SWT 2
T JTextPane, Mausklick, aktives Wort AWT, Swing, JavaFX & SWT 2
S Mausklick reagiert nicht im JMenuBar AWT, Swing, JavaFX & SWT 4
S mausklick AWT, Swing, JavaFX & SWT 9
M Mausklick verzögern AWT, Swing, JavaFX & SWT 5
izoards JavaFX Background Task warten auf Knopfdruck AWT, Swing, JavaFX & SWT 4
G FX warten bis ein anderes GUI Element ausgewählt wurde AWT, Swing, JavaFX & SWT 8
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
kodela Swing Anzeige des Warten-Cursors AWT, Swing, JavaFX & SWT 8
H Eigener Dialog mit Rückgabe -> Warten auf Button AWT, Swing, JavaFX & SWT 3
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
W JavaFX Webview warten bis Seite geladen geladen ? AWT, Swing, JavaFX & SWT 0
U Java FX Warten auf Textfield eingabe AWT, Swing, JavaFX & SWT 17
M JavaFX FadeTransition, warten bis beendet AWT, Swing, JavaFX & SWT 10
O Swing JDialog öffnen und dann warten bis er geschlossen wurde AWT, Swing, JavaFX & SWT 2
H Event Handling JavaFx - auf Event warten AWT, Swing, JavaFX & SWT 4
Thallius Auf Swingworker warten? AWT, Swing, JavaFX & SWT 5
D Swing Bei MenuSelectionManager auf Ausführung warten? AWT, Swing, JavaFX & SWT 5
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
P Warten auf komponente AWT, Swing, JavaFX & SWT 2
H AWT Auf Bestätigung warten AWT, Swing, JavaFX & SWT 6
B Timer, TimerTask und Warten AWT, Swing, JavaFX & SWT 4
L JavaFX Wait/Sleep/postedDelay - Einfach nur warten AWT, Swing, JavaFX & SWT 4
C Swing SwingWorker: Auf beendigung eines Formulars / einer Arbeit warten AWT, Swing, JavaFX & SWT 10
F JFrame nach Buttonklick 3 Sekunden warten, bevor es sich ändert AWT, Swing, JavaFX & SWT 2
A Auf Tastendruck warten AWT, Swing, JavaFX & SWT 9
A Auf eingabe warten AWT, Swing, JavaFX & SWT 5
S auf paintComponent() warten AWT, Swing, JavaFX & SWT 34
B Warten bis neues ImageIcon zugewiesen ist AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben