Versions Compared

Key

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

...

Lag en toString()-metode som viser teksten med tegnet '|' skutt inn på tekstinnsettingsposisjonen. Lag så en main-metode, slik at du kan sjekke at oppførselen stemmer med tilstandsdiagrammet (bruk samme start-tilstand og sekvens av kall).

Del 3 - JavaFX

Dersom Eclipse har blitt installert som forklart på installasjon av eclipse har du mulighet til å høyreklikke på prosjektmappen (ovinger) -> Team -> Pull for å laste nødvendige filer for denne øvingen. Da skal det ligge LineEditorController.java og LineEditor.fxml i prosjektmappen din, i pakken "stateandbehavior". Disse utgjør en JavaFX-applikasjon, og bruker LineEditor-klassen du har laget. Kjør applikasjonen ved å høyreklikke på LineEditor.fxml -> Run As -> FXML application, og observer hva som skjer.

Åpne LineEditorController og finn ut hvor LineEditor-klassen din blir brukt, og kommenter kort hva som skjer med den. Det er ikke et krav at du forstår resten av koden i LineEditorController, du skal kun forklare hvordan klassen din blir brukt.

 

JExercise-testkode for oppgaven finner du her: stateandbehavior/LineEditorTest.java. Original-koden (jextest) finner du her: stateandbehavior/LineEditor.jextest.

Vi har laget en JavaFX-app som du kan bruke for å teste koden din, og kanskje lære deg litt om JavaFX. App-en består av følgende to filer: stateandbehavior/LineEditorFX.java. og stateandbehavior/LineEditorFX.fxml.

...

Ekstraoppgave - frivillige utvidelser

  • Legg til metoden void insert(Object o), som skyter inn en tekstlig representasjon av objektet o som gis som argument.
  • Legg til metoden void left(int n), som flytter tekstinnsettingsposisjonen n tegn til venstre, og skriv om left() til å bruke denne. Hva bør skje dersom tekstinnsettingsposisjonen er mindre enn n?
  • Legg til metoden right(int n), som flytter tekstinnsettingsposisjonen n tegn til høyre, og skriv om right() til å bruke denne. Hva bør skje dersom det er færre enn n tegn til høyre for tekstinnsettingsposisjonen?
  • Utvid tilstanden og legg til metoder for å håndtere markering av region, tilsvarende bruk av shift og piltaster i en vanlig teksteditor. Husk at også de eksisterende metodene må endres til å håndtere dette riktig.

...