Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
MemoryApp -> Memory: nextItem()
Memory -> MemoryApp: 3
MemoryApp -> Text: setText("Element nr. 1 er 3")
participant TextField
actor bruker
Text -> bruker: "Element nr. 1 er 3"
MemoryApp -> Text: setText("Gjenta element nr. 1 av 1")
Text -> bruker: "Gjenta element nr. 1 av 1"
bruker --> TextField: 3
TextField -> MemoryApp: handleSubmitUserInputAction()
MemoryApp -> TextField: getText()
TextField --> MemoryApp: "3"
MemoryApp -> Memory: acceptItem(3)
Memory --> MemoryApp: Boolean.TRUE
MemoryApp -> Memory: nextItem()
 

Sekvensdiagrammet viser hvordan Text- og TextField-objektene samhandler med MemoryApp- og Memory-objektene. Sekvensen er omtrent som i versjon 1, med noen viktige forskjeller:

  • Text-objektet har tatt rollen til System.out og tar imot meldinger til brukeren.
  • Istedenfor at MemoryApp leser input fra System.in med Scanner.nextLine()-metoden, så er det TextField-objektet som kaller handleSubmitUserInputAction(...)-metoden på MemoryApp-objektet når brukeren har (skrevet inn et tall og) trykket return-tasten.

Det at program-objektet ikke aktivt henter input, men venter på at et interaktivt JavaFX-objekt sier fra om input er typisk for hendelsesstyrte programmer. På en måte venter program-objektet på alle mulige input på en gang, og må reagere på det som kommer. I dette tilfellet er det jo bare ett interaktivt JavaFX-objekt, men i større programmer er det mye som kan skje på en gang.