7. praktikum. Harjutused
NB! Praktikumiülesandeid antakse alati varuga, et ka kõige kiirematel/kogenumatel lahendajatel jätkuks tegevust. Seega pole mõtet kurvastada, kui te ei jõua kõiki lahendada. Vaadake ülesanded rahulikult üle ja lahendage ära just need, mis tunduvad teile huvitavad ja/või parajalt jõukohased/väljakutsuvad (kui just teie praktikumijuhendaja pole teile soovitanud mingit konkreetset ülesannet).
1. Tulpdiagramm
Koostage tekstifail, kus on antud nt. 10 täisarvu (iga arv eraldi real). Kirjutage programm, mis loeb failist neid arve ja joonistab neile arvudele vastava tulpdiagrammi. Tulbad võiksid olla visuaalselt võimalikult lihtsad. 50-st suurematele väärtustele vastavad tulbad joonistatakse punase värviga, teised tulbad on sinist värvi. Tulba alla on kirjutatud vastav arv.
Tulemuse näide:
2. Kalkulaatori aken
Kirjutada programm, mis loob kalkulaatori akna (kalkulaator ei pea töötama). Kasutada vähemalt kahte erinevat paigaldushaldurit (klassi Region
(või selle mingi alamklassi) isendit). Nuppude vahele jätta tühja ruumi. Arvutamise tulemus peab olema valgel taustal ja kindlasti üleval paremal. Nuppude tekstid peavad olema kas punast või sinist värvi. Aken peab olema fikseeritud suurusega (st. ei saa suurendada või vähendada).
Tulemuse näide:
3. Värvid
Kirjutada programm, mis esitab huvitavalt kõik klassi Color
võimalikud värvid. Näiteks:
Järgmine meetod tagastab kõigi võimalike värvide listi:
import java.lang.reflect.Field; import java.util.ArrayList; import javafx.scene.paint.Color; ... static ArrayList<Color> koikVarvid() throws Exception { ArrayList<Color> varvid = new ArrayList<Color>(); Class<?> klass = Class.forName("javafx.scene.paint.Color"); if (klass != null) { Field[] field = klass.getFields(); for (int i = 0; i < field.length; i++) { Field f = field[i]; Object obj = f.get(null); if(obj instanceof Color){ varvid.add((Color) obj); } } } return varvid; }
Teise näite jaoks on kasutatud efekti: http://docs.oracle.com/javase/8/javafx/api/javafx/scene/paint/RadialGradient.html