Versions Compared

Key

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

...

Som i den første versjonen har vi ett program-objekt som håndterer interaksjon med brukeren og som samhandler med ett Memory-objekt. Siden dette program-objektet skal være en JavaFX-applikasjon, så må den bygge på Application-klassen (i javafx.application-pakken), slik at den får en del ferdiglagd oppførsel. Interaksjonen vi skal implementere er ikke så ulik den fra versjon 1 og 2, ved at applikasjon gir tekstlige meldinger til brukeren, og brukeren svarer ved å skrive inn tekst. Dette betyr at vi må bruke ha referanser til to andre JavaFX-klasser, objekter av typene Text (i javafx.scene.text-pakken) for tekstlig output og TextField (i javafx.scene.control-pakken) for tekstlig input. I tillegg må vi som i versjon 1 og 2 ha et Memory-objekt. Dette gir følgende klasse- og objektdiagrammer:

PlantUML Macro
abstract class Application {
	+abstract void start(Stage)
}
class MemoryApp {
	+void start(Stage)
}
class Memory {
}

class Text {
}
class TextField {
}
Application <|- MemoryApp
MemoryApp --> Memory: memory
MemoryApp --> Text: systemOutput
MemoryApp --> TextField: userInput
 
PlantUML Macro
actor bruker
MemoryProgram -> Memory: nextItem()
Memory -> MemoryProgram: 3
MemoryProgram -> Text: setText("Element nr. 1 er 3")
Text -> bruker: "Element nr. 1 er 3"
MemoryProgram -> 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"
MemoryProgram -> Memory: acceptItem(3)
Memory --> MemoryProgram: Boolean.TRUE
MemoryProgram -> Memory: nextItem()