ITI0011:harjutus 15
Kirjeldus
Kirjutada graafilise kasutajaliidesega programm, kus saab teha erinevaid kujundeid. Programmis on nupp, mis vähendab kõige suurema ringi raadiust 5 px võrra.
Nõuded:
- hiirega ekraanil klikkides tekib juhuslikkuse alusel kas ring või ristkülik. Ringi tõenäosus on 0.8, ristküliku oma 0.2. Mõlema kujundi puhul on suurused (raadis või külgede pikkused) juhuslikud numbrid vahemikus 10 kuni 100 (kaasa arvatud).
- ekraanil on nupp, millele vajutades kutsutakse välja
Util.getBiggestCircle(main.getChildren())
, eeldusel, etmain
on see element, mille sisse lisatakse kujundeid. - kui nupu vajutamise peale saadakse meetodist tagasi
Circle
objekt, siis selle kujundi raadiust tuleb vähendada 5px võrra. - Kujundi raadiuse vähendamisel tuleb kasutada mingit animatsiooni (näiteks väheneb aeglaselt 0.5 sekundi jooksul).
Sedasi nuppu vajutades peaks lõpuks kõik ringid ära kaduma (raadius = 0).
Mall
<source lang="java"> import javafx.collections.ObservableList; import javafx.scene.Node; import javafx.scene.shape.Circle;
public class Util { /** * Given a list of Node elements (in JavaFX, containers * have a method getChildren() which returns an observable * list of child elements (buttons, textboxes etc. and also * other containers) return the circle object with the largest * radius. The list can contain other elements beside Circle object. * * @param children A list of child nodes * @return The circle with the largest radius */ public static Circle getBiggestCircle(ObservableList<Node> children) { return null; } }
</source>