...
LineEditor-klassen holder rede på en String-verdi og en tekstinnsettingsposisjon og har metoder for å redigere teksten. Tekstinnsettingsposisjonen er et heltall som angir hvor endringer skjer, tilsvarende en (blinkende) cursor som står mellom tegn. Verdien 0 tilsvarer foran første tegn, og høyeste mulige verdi er lengden på teksten, som tilsvarer at cursoren står bak siste tegn. Tilstanden er altså som følger:
- text (en String-verdi) - teksten
- insertionIndex - heltall som angir hvor i teksten redigeringer vil skje
...
- void left() - flytter tekstinnsettingsposisjonen ett tegn til venstre (tilsvarende bruk av venstre piltast)
- void right() - flytter tekstinnsettingsposisjonen ett tegn til høyre (tilsvarende bruk av høyre piltast)
- void insertString(String s) - skyter teksten angitt av argumentet s inn i teksten på tekstinnsettingsposisjonen og forskyver tekstinnsettingsposisjonen mot høyre tilsvarende
- void deleteLeft() - fjerner tegnet til venstre for tekstinnsettingsposisjonen
- void deleteRight() - fjerner tegnet til høyre for tekstinnsettingsposisjonen
- String getText() - Returnerer teksten
- void setText(String) - oppdaterer teksten til å være den nye teksten
- int getInsertionIndex - returnerer hvor i teksten redigeringer nå skjer
- void setInsertionIndex(int) - oppdaterer hvor i teksten redigeringer skal skje
Del 1 -
...
Tilstandsdiagram
Tegn et tilstandsdiagram for en tenkt bruk av LineEditor-klassen, som dekker bruk av alle metodene.
...
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 Testkode for oppgaven finner du her: stateandbehavior/LineEditorTest.java. Original-koden (jextest) finner du her: stateandbehavior/LineEditor.jextest.
...
Include Page | ||||
---|---|---|---|---|
|