ITI0011:harjutus 15

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

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 (raadius 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, et main 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>