Video: Building Serious JavaFX 2 Applications 2024
Speciale effecten in JavaFX kunnen u dingen laten doen zoals het uiterlijk van de knooppunten in uw scènegrafiek verfraaien door speciale effecten toe te voegen, zoals onscherpte, schaduwen, verplaatsingen van kleuren, gloed enzovoort. U kunt zelfs perspectief toevoegen om uw toepassing een driedimensionale uitstraling te geven zonder dat u daadwerkelijk 3D-programmering hoeft te doen.
Speciale effecten in JavaFX komen voort uit de klasse Effect, een abstracte klasse met een grote verscheidenheid aan subklassen die u kunt gebruiken om een speciaal effect te creëren. Er zijn in totaal 17 subklassen van de klasse Effect, maar misschien hoeft u niet alle 17 te leren. In plaats daarvan moet u zich eerst richten op die effecten waarmee u uw vormen er realistischer uit kunt laten zien door wazigheid, schaduwen, reflecties en gloed toe te voegen.
Alle effecten werken op dezelfde manier. Eerst maak je een instantie van de klasse van het effect door de standaardconstructor aan te roepen. Vervolgens stelt u optioneel de eigenschappen van het effect in door een of meer ingestelde methoden aan te roepen. (In veel gevallen zijn de standaard eigenschapswaarden geschikt, dus u kunt deze stap vaak overslaan.) Ten slotte past u het effect toe op een knooppunt door de setEffect-methode van het knooppunt aan te roepen.
Hier is bijvoorbeeld een stukje code waarmee een rechthoek wordt gemaakt, deze wordt gevuld en vervolgens een slagschaduw wordt toegevoegd:
Rectangle r1 = new Rectangle (50, 50, 100, 100); r1. setFill (kleur LIGHTGRAY); r1. setStroke (kleur ZWART); r1. setStrokeWidth (2); DropShadow shadow1 = new DropShadow (); r1. setEffect (shadow1);
Deze figuur toont de uitkomst van dit effect. Zoals je kunt zien, is de rechthoek omgeven door een subtiele schaduw.
De methode setEffect wordt gedefinieerd door de klasse Node, wat betekent dat u een effect kunt toepassen op elk knooppunt in uw scènegrafiek. Het effect wordt niet alleen toegepast op het knooppunt waarvan u de methode setEffect gebruikt, maar ook op alle kinderen van dat knooppunt. Als u setEffect callt op het basisknooppunt van een scène, wordt het effect toegepast op de gehele scène.