⌛ 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. Tehtävään ei ole annettu materiaalia etätietovarastossa.

Tässä tehtävässä toteutetaan nelilaskin 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äsenfunktion setId avulla id:t fieldOp1 ja fieldOp2.

    • Syötekenttien edessä tulee olla otsaketekstit "First operand:" ja "Second operand:". Nämä tulee toteuttaa JavaFX:n Text- tai Label-elementteinä ja niille tulee määrittää id:t labelOp1 ja labelOp2.

  • Napit yhteen-, vähennys-, kerto- ja jakolaskulle.

    • 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 esimerkiksi jäsenfunktion setBackground dokumentaatioon. Voit käyttää väriä Color.WHITE.) Tuloskenttä on aluksi tyhjä eli sisältää tyhjän merkkijonon "".

    • Tuloskentän edessä tulee olla otsaketeksti Result:, joka on JavaFX:n Text- tai Label-elementti ja jolle on määritetty id labelRes.

Edellä pyydettiin määrittämään id:t, jotta käyttöliittymää olisi voitaisiin 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ä.

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 ../../../_images/calc_sub.png ../../../_images/calc_mul.png ../../../_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ä.

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.