⌛ JavaFX laskin¶
Aseta koodisi pääluokka Maven-projektin hakemistorakenteen mukaisesti tiedostoon
Round12/calc/src/main/java/fi/tuni/prog3/calc/Calculator.java
. Kuten hakemistorakenne ilmentää,
toteutuksesi tulee olla määritetty pakkaukseen fi.tuni.prog3.calc
.
Tässä tehtävässä toteutetaan yksinkertainen laskin JavaFX-käyttöliittymäkirjastolla. Laskimessa tulee olla seuraavat osat:
Syötekentät ensimmäiselle ja toiselle operandille.
Syötekenttien tulee olla JavaFX:n
TextField
-elementtejä, joille on määritetty JavaFX:n elementtien jäsenfunktionsetId
avulla id:t “fieldOp1
” ja “fieldOp2
”.Syötekenttien edessä tulee olla otsaketekstit “
First operand:
” ja “Second operand:
”. Nämä tulee toteuttaa JavaFX:nText
- taiLabel
-elementteinä ja niille tulee määrittää id:t “labelOp1
” ja “labelOp2
”.
Neljää laskutoimitusta vastaavat napit: yhteen-, vähennys-, kerto- ja jakolasku.
Nämä tulee toteuttaa JavaFX:n
Button
-elementteinä ja niille tulee määrittää id:t “btnAdd
”, “btnSub
”, “btnMul
” ja “btnDiv
”.Napeilla pitää olla tekstit “
Add
”, “Subtract
”, “Multiply
” ja “Divide
”.
Tuloskenttä.
Tuloskentän tulee olla JavaFX:n
Label
-elementti, jolle on määritetty id “fieldRes
” ja jonka tausta on määritetty valkoiseksi (tutustu esim. jäsenfunktionsetBackground
dokumentaatioon; voit käyttää väriäColor.WHITE
). Tuloskenttä on aluksi tyhjä (sisältää tyhjän merkkijonon “”).Tuloskentän edessä tulee olla otsaketeksti “
Result:
”, joka on JavaFX:nText
- taiLabel
-elementti ja jolle on määritetty id “labelRes
”.
Edellä pyydettiin määrittämäämn elementeille id:t, jotta käyttöliittymää olisi kohtalaisen yksinkertaista testata elementtejä tutkivilla yksikkötesteillä.
Alla on esimerkkikuva laskimen mahdollisesta käyttöliittymästä. Huomaa, että tämä on esimerkki eli sinun ei ole pakko tehdä täsmälleen samannäköistä käyttöliittymää. Oleellista on, että toteutat vastaavat osat.
![Esimerkki laskimen käyttöliittymästä.](https://plus.tuni.fi/graderS/static/compcs140-s2022/_images/calc_init.png)
Jos käyttäjä antaa syötekenttiin syöteluvut ja painaa jotain laskutoimitusta vastaavaa nappia,
pitää tuloskenttään ilmestyä laskutoimituksen tulos. Laskutoimituksen suorittaminen ei vaikuta
syötekenttien sisältöön; niiden arvot säilyvät ennallaan, kunnes käyttäjä muuttaa niitä.
Toteutuksen tulee käsitellä sekä syötelukuja että tulosta double
-tyyppisinä arvoina. Alla on
esimerkit kaikista neljästä laskutoimituksesta:
![../../../_images/calc_add.png](https://plus.tuni.fi/graderS/static/compcs140-s2022/_images/calc_add.png)
![../../../_images/calc_sub.png](https://plus.tuni.fi/graderS/static/compcs140-s2022/_images/calc_sub.png)
![../../../_images/calc_mul.png](https://plus.tuni.fi/graderS/static/compcs140-s2022/_images/calc_mul.png)
![../../../_images/calc_div.png](https://plus.tuni.fi/graderS/static/compcs140-s2022/_images/calc_div.png)
Toteutuksesi pääluokan pitää olla fi.tuni.prog3.calc.Calculator
(eli pakkaukseen
fi.tuni.prog3.calc
määritetty luokka Calculator
). Pääluokalla tarkoitetaan sitä luokkaa,
jossa annat toteutuksen JavaFX-käyttöliittymän alustavalle funktiolle start
. Toteutukseesi saa
kuulua muitakin kooditiedostoja, kunhan nekin sijaitsevat alihakemistossa
src/main/java/fi/tuni/prog3/calc
.
Testauksesta¶
Tässä tehtävässä ei ole GUI-pohjaisen luonteensa vuoksi tekstimuotoisia esimerkkisyötteitä tai -tulosteita. Laskimen toiminnallisuuden varmistaminen omatoimisesti lienee kohtalaisen yksinkertaista, koska laskimessa on melko suppea määrä toiminnallisuutta ja toiminnot ovat yksinkertaisia suorittaa. Pyri tarkistamaan, että et ole tehnyt kirjoitusvirheitä määrittäessäsi elementtien id-arvoja ja otsaketekstejä.
Tehtävän palautus avautuu pienellä viiveellä. Tarkistus tulee perustumaan yksikkötesteihin, jotka antavat toteutuksellesi pisteitä kumulatiivisesti sen mukaan, moniko testi menee virheittä läpi. Tehtävästä on siten mahdollista saada osittaispisteitä.
A+ esittää tässä kohdassa tehtävän palautuslomakkeen.