Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden

mrT

Mitglied
Hallo,
vielleicht kann mir jemand helfen. Es geht um ein Trainingsprogramm für die Vokabelabfrage
Ich habe eine ObservableList mit Vokabelobjekten, die nacheinander abgefragt werden sollen. Sobald der User die Übersetzung in ein Textfeld eingibt und ENTER drückt, soll die nächste Vokabel abgefragt werden, bis alle Vokabeln in der Liste einmal dran waren.

Ich habe zwar eine Lösung für mich gefunden, kann mir aber vorstellen, dass das besser geht --meine Lösung: mit while(OL nicht leer) aus OL nacheinander Elemente entnehmen und dann entfernen bis OL leer ist.

Kann man beim Durchlaufen einer Schleife nach jedem Element stoppen und auf Eingabe des Users warten und dann zum nächsten Element weiter gehen?

Das kann eine for-Schleife sein oder wenn möglich auch mit stream()

Also in etwa so:

Java:
   olvokabeln.stream().forEach(vokabel -> {
     
       label.setText(vokabel.getEnglisch());
     
      ///   hier auf EINGABE   warten  und dann weiter die Schleife durchlaufen
     
     
   });

Danke
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Wenn ich mal von einer Klasse Vokabel ausgehe, die eine ... Vokabel ... repräsentiert, könnte man über folgendes nachdenken:

Java:
public class Vokabeln {
    private final List<Vokabel> vokabelListe;
    private final SimpleObjectProperty<Vokabel> aktuelleVokabel = new SimpleObjectProperty<>();
    private int index;

    public Vokabeln(List<Vokabel> vokabeln) {
        vokabelListe = vokabeln;
    }

    public void next() {
        index = (index + 1) % vokabelListe.size();
        aktuelleVokabel.set(vokabelListe.get(index));
    }

    public ReadOnlyProperty<Vokabel> aktuelleVokabelProperty() {
        return aktuelleVokabel;
    }
}

Das UI registriert nun einfach einen Listener bei der Property, die von Vokabeln#aktuelleVokabelProperty() geliefert wird, um die aktuelle Vokabel anzuzeigen und ruft nach einer Eingabe einfach Vokabeln#next() auf. Fertig.

Natürlich ist das nur eine Skizze, die entsprechend angepasst und erweitert werden muss. Beispielsweise fängt next() wieder von vorne an, wenn die letzte Vokabel der Vokabelliste erreicht wurde.
 

KonradN

Super-Moderator
Mitarbeiter
Was ich so verstanden habe: Du denkst noch in der Art, wie man bei Konsolenprogrammen denkt. Du bist aber jetzt dabei eine UI zu schreiben und da ändert sich das Vorgehen etwas.

Bei den Programmen mit der UI ist es so (egal ob AWT/Swing, JavaFX oder SWT), dass Du auf Events reagierst. Du steuerst also den Ablauf nicht mehr aktiv sondern reagierst nur noch auf Events, die der User veranlasst.

Du hast also einen Satz an Daten, auf denen Du dann bei Events etwas machst. Das kann dann so aussehen:
  • Du hast z.B. eine Liste von allen Vokabeln, die eingelesen werden beim Programmstart
  • Dann hast Du in dem Programm eine Liste an Vokabeln, die abgefragt werden sollen.
  • Beim Anzeigen wird dann eine Vokabel aus der Liste genommen und entfernt. Diese Vokabel wird dann angezeigt und der Benutzer kann darauf basierend etwas machen.

Der Benutzer hat dann die volle Kontrolle. Er kann das Programm schließen. Oder er kann die Vokabel bearbeiten. Wenn er da etwas gemacht hat, dann kann darauf reagiert werden. Dann wird ggf. die nächste Variable aus dem Vorrat genommen und angezeigt oder so.

Was du Dir also überlegst ist weniger ein Ablaufplan eines Programmes sondern mehr sowas wie eine State Machine. Du hast einen State, der gewisse Dinge enthält und dann können Events passieren. Diese verändern den State dann. Das kann man also etwas als "Event based programming" ansehen.

Du hast somit keine wirkliche Schleife in dem Sinne. Die Schleife besteht dann nur darin, dass der Benutzer Variable nach Variable abarbeiten kann (so er das möchte, evtl. hat er auch andere Möglichkeiten ... eine wäre z.B. das Schließen des Programmes.)
 

mrT

Mitglied
Hallo,
danke für die Antworten
@KonradN Das Denken in den Konsolenprogrammen stimmt genau, in den 80ern habe ich mit Basic und Pascal angefangen. Da gab es speziell eine Schleife für Data und mit nextData (o.ä) konnt konnte man schrittweise die Datenmenge durchlaufen.
Aber ich verstehe das Prinzip. Danke

@mihe7 Das mit der ObjektProperty ist ja ein guter Trick, wäre ich nicht darauf gekommen, ist auch ganz praktisch in anderen Situationen.
Danke dann kann ich meine alte Lösung auf jeden Fall verbessern ud übersichtlicher gestalten

Grüße mrT
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
C Schleife auf Mausklick warten lassen AWT, Swing, JavaFX & SWT 6
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
Juelin setzen background color für selected Row im Tableview AWT, Swing, JavaFX & SWT 21
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
I Libraries für AWT für andere Grafik-Frameworks tauglich machen AWT, Swing, JavaFX & SWT 6
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
D JavaFX Schadensberechnung für Kartenspiel AWT, Swing, JavaFX & SWT 1
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
L actionListener für Button AWT, Swing, JavaFX & SWT 97
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
T Button für GUI programmieren AWT, Swing, JavaFX & SWT 1
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
M Hough-Transformation für Kreise und andere Formen AWT, Swing, JavaFX & SWT 3
kodela HTML-tags für JLabel AWT, Swing, JavaFX & SWT 9
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
MiMa Package Struktur für GUI Programmierung AWT, Swing, JavaFX & SWT 26
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
K Swing Struktur für TreeTable rekursiv aufbauen AWT, Swing, JavaFX & SWT 17
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
H Ein Patten für das Gluon Mobile Framework AWT, Swing, JavaFX & SWT 7
J Gibt es einen Grund für 16x16 anstatt z.B. 15x15 Tiles ? AWT, Swing, JavaFX & SWT 10
F JFormattedTextField für kg und Währung AWT, Swing, JavaFX & SWT 6
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
Soloeco JavaFX Dreifachklick für MenuButton erforderlich AWT, Swing, JavaFX & SWT 2
L JavaFX Lösungsvorschläge für dieses coole Control AWT, Swing, JavaFX & SWT 8
looparda Suche Lib für Visualisierung von Graphen AWT, Swing, JavaFX & SWT 12
G LayoutManager Beliebige Anzahl von Panels für LayoutManager AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
S Swing Finde Grund für NullPointerExeption nicht. AWT, Swing, JavaFX & SWT 2
W JavaFX (j)Unittests für GUI AWT, Swing, JavaFX & SWT 0
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
SchmidiMC Swing Vorschläge für ein Design AWT, Swing, JavaFX & SWT 5
Z JavaFX Pane für wechselnde Sub-Panes mit Auto-Resize AWT, Swing, JavaFX & SWT 2
S 2D-Grafik affine Transformation für Text-Shape AWT, Swing, JavaFX & SWT 0
G Swing Variable Elemente für GroupLayout AWT, Swing, JavaFX & SWT 18
kodela Accalerator für einige Menüoptionen funktioniert nicht mehr AWT, Swing, JavaFX & SWT 3
P Swing Empfehlungen für einfaches Computerspiel AWT, Swing, JavaFX & SWT 4
L DragDropped für jede Node AWT, Swing, JavaFX & SWT 0
temi JavaFX Lösungsansatz für Umsetzung gesucht AWT, Swing, JavaFX & SWT 4
J Swing JavaProgramm für Verschlüssen für eine Datei AWT, Swing, JavaFX & SWT 19
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
MiMa Programmeinstellungen für Anwendung?? AWT, Swing, JavaFX & SWT 54
L JavaFX Renderer für JavaFX AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben