개발 환경 설정
- JavaFX 개발 환경 설정(넷빈즈 8.2, 오라클 JDK 1.8, Scene Builder)
- Scene Builder에 라이브러리 추가 하는 방법(JFoeniX, FontAwesomeFX)
- 넷빈즈 프로젝트 외부 라이브러리(jar) 등록하는 방법
결과
프로젝트 다운로드
프로젝트 구조
소스 코드
Main.java
package com.ozxexe.animatefxdemo;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("AnimateFX Demo");
primaryStage.setScene(new Scene(root, 700, 700));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Controller.java
package com.ozxexe.animatefxdemo;
import animatefx.animation.*;
import animatefx.util.ParallelAnimationFX;
import animatefx.util.SequentialAnimationFX;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.paint.Color;
import javafx.util.Duration;
public class Controller {
@FXML
Label text;
@FXML
public void handleClick(ActionEvent actionEvent) {
Button button = (Button) actionEvent.getSource();
String s = button.getText();
switch (s) {
/*Attention seekers**/
case "Bounce":
//new Bounce(text).setCycleCount(2).play();
break;
case "Flash":
new Flash(text).play();
break;
case "Pulse":
new Pulse(text).play();
break;
case "RubberBand":
new RubberBand(text).play();
break;
case "Shake":
new Shake(text).play();
break;
case "Swing":
new Swing(text).play();
break;
case "Tada":
new Tada(text).play();
break;
case "Wobble":
new Wobble(text).play();
break;
case "Jello":
new Jello(text).play();
/*Bounce Entrances**/
break;
case "BounceIn":
new BounceIn(text).play();
break;
case "BounceInDown":
new BounceInDown(text).play();
break;
case "BounceInLeft":
new BounceInLeft(text).play();
break;
case "BounceInRight":
new BounceInRight(text).play();
break;
case "BounceInUp":
new BounceInUp(text).play();
/*Bouncing exits**/
break;
case "BounceOut":
new BounceOut(text).setResetOnFinished(true).play();
break;
case "BounceOutDown":
new BounceOutDown(text).setResetOnFinished(true).play();
break;
case "BounceOutLeft":
new BounceOutLeft(text).setResetOnFinished(true).play();
break;
case "BounceOutRight":
new BounceOutRight(text).setResetOnFinished(true).play();
break;
case "BounceOutUp":
new BounceOutUp(text).setResetOnFinished(true).play();
/*Fading entrances**/
break;
case "FadeIn":
new FadeIn(text).play();
break;
case "FadeInDown":
new FadeInDown(text).play();
break;
case "FadeInDownBig":
new FadeInDownBig(text).play();
break;
case "FadeInLeft":
new FadeInLeft(text).play();
break;
case "FadeInLeftBig":
new FadeInLeftBig(text).play();
break;
case "FadeInRight":
new FadeInRight(text).play();
break;
case "FadeInRightBig":
new FadeInRightBig(text).play();
break;
case "FadeInUp":
new FadeInUp(text).play();
break;
case "FadeInUpBig":
new FadeInUpBig(text).play();
/*Fading exits**/
break;
case "FadeOut":
new FadeOut(text).setResetOnFinished(true).play();
break;
case "FadeOutDown":
new FadeOutDown(text).setResetOnFinished(true).play();
break;
case "FadeOutDownBig":
new FadeOutDownBig(text).setResetOnFinished(true).play();
break;
case "FadeOutLeft":
new FadeOutLeft(text).setResetOnFinished(true).play();
break;
case "FadeOutLeftBig":
new FadeOutLeftBig(text).setResetOnFinished(true).play();
break;
case "FadeOutRight":
new FadeOutRight(text).setResetOnFinished(true).play();
break;
case "FadeOutRightBig":
new FadeOutRightBig(text).setResetOnFinished(true).play();
break;
case "FadeOutUp":
new FadeOutUp(text).setResetOnFinished(true).play();
break;
case "FadeOutUpBig":
new FadeOutUpBig(text).setResetOnFinished(true).play();
/*Flipeprs**/
break;
case "Flip":
new Flip(text).play();
break;
case "FlipInX":
new FlipInX(text).play();
break;
case "FlipInY":
new FlipInY(text).play();
break;
case "FlipOutX":
new FlipOutX(text).setResetOnFinished(true).play();
break;
case "FlipOutY":
new FlipOutY(text).setResetOnFinished(true).play();
/*LightSpeed**/
break;
case "LightSpeedIn":
new LightSpeedIn(text).play();
break;
case "LightSpeedOut":
new LightSpeedOut(text).setResetOnFinished(true).play();
/*Rotating entrances**/
break;
case "RotateIn":
new RotateIn(text).play();
break;
case "RotateInDownLeft":
new RotateInDownLeft(text).play();
break;
case "RotateInDownRight":
new RotateInDownRight(text).play();
break;
case "RotateInUpLeft":
new RotateInUpLeft(text).play();
break;
case "RotateInUpRight":
new RotateInUpRight(text).play();
/*Rotating exits**/
break;
case "RotateOut":
new RotateOut(text).setResetOnFinished(true).play();
break;
case "RotateOutDownLeft":
new RotateOutDownLeft(text).setResetOnFinished(true).play();
break;
case "RotateOutDownRight":
new RotateOutDownRight(text).setResetOnFinished(true).play();
break;
case "RotateOutUpLeft":
new RotateOutUpLeft(text).setResetOnFinished(true).play();
break;
case "RotateOutUpRight":
new RotateOutUpRight(text).setResetOnFinished(true).play();
/*Sliding entrances**/
break;
case "SlideInUp":
new SlideInUp(text).play();
break;
case "SlideInDown":
new SlideInDown(text).play();
break;
case "SlideInLeft":
new SlideInLeft(text).play();
break;
case "SlideInRight":
new SlideInRight(text).play();
/*Sliding exits**/
break;
case "SlideOutUp":
new SlideOutUp(text).setResetOnFinished(true).play();
break;
case "SlideOutDown":
new SlideOutDown(text).setResetOnFinished(true).play();
break;
case "SlideOutLeft":
new SlideOutLeft(text).setResetOnFinished(true).play();
break;
case "SlideOutRight":
new SlideOutRight(text).setResetOnFinished(true).play();
/*Zoom entrances**/
break;
case "ZoomIn":
new ZoomIn(text).play();
break;
case "ZoomInDown":
new ZoomInDown(text).play();
break;
case "ZoomInLeft":
new ZoomInLeft(text).play();
break;
case "ZoomInRight":
new ZoomInRight(text).play();
break;
case "ZoomInUp":
new ZoomInUp(text).play();
/*Zoom exits**/
break;
case "ZoomOut":
new ZoomOut(text).setResetOnFinished(true).play();
break;
case "ZoomOutDown":
new ZoomOutDown(text).setResetOnFinished(true).play();
break;
case "ZoomOutLeft":
new ZoomOutLeft(text).setResetOnFinished(true).play();
break;
case "ZoomOutRight":
new ZoomOutRight(text).setResetOnFinished(true).play();
break;
case "ZoomOutUp":
new ZoomOutUp(text).setResetOnFinished(true).play();
/*Specials*/
break;
case "Hinge":
new Hinge(text).setResetOnFinished(true).play();
break;
case "JackInTheBox":
new JackInTheBox(text).play();
break;
case "RollIn":
new RollIn(text).play();
break;
case "RollOut":
new RollOut(text).setResetOnFinished(true).play();
/* Colors */
break;
case "TextGlow":
new GlowText(text, Color.ORANGE, Color.ORANGERED)
.setCycleCount(3)
.setSpeed(0.5)
.setResetOnFinished(true)
.play();
break;
case "BackgroundGlow":
new GlowBackground(text, Color.WHITE, Color.YELLOW, 20)
.setDelay(Duration.millis(500))
.setCycleCount(3)
.setResetOnFinished(true)
.play();
break;
case "SequentialAnimation":
SequentialAnimationFX sequentialAnimationFX = new SequentialAnimationFX(text, new BounceIn(), new Flash());
sequentialAnimationFX.setResetOnFinished(true);
sequentialAnimationFX.play();
break;
case "ParallelAnimation":
ParallelAnimationFX parallelAnimationFX = new ParallelAnimationFX(text, new BounceIn(), new Flash());
parallelAnimationFX.play();
break;
default:
System.err.println("No animation binded to this button");
break;
}
}
}
sample.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.ozxexe.animatefxdemo.Controller">
<children>
<StackPane layoutX="10.0" layoutY="10.0" maxHeight="700.0" minHeight="150.0" prefHeight="400.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="AnimateFX" visible="false" StackPane.alignment="CENTER">
<font>
<Font size="50.0" />
</font>
</Text>
<Label fx:id="text" text="AnimateFX">
<font>
<Font size="50.0" />
</font>
</Label>
</children>
</StackPane>
<ScrollPane fitToWidth="true" layoutX="10.0" layoutY="146.0" prefWidth="600.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="146.0">
<content>
<VBox>
<children>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Attention seekers">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="Bounce" />
<Button mnemonicParsing="false" onAction="#handleClick" text="Flash" />
<Button mnemonicParsing="false" onAction="#handleClick" text="Pulse" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RubberBand" />
<Button mnemonicParsing="false" onAction="#handleClick" text="Shake" />
</children>
<padding>
<Insets top="20.0" />
</padding>
</HBox>
<HBox alignment="CENTER" spacing="10.0">
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="Swing" />
<Button mnemonicParsing="false" onAction="#handleClick" text="Tada" />
<Button mnemonicParsing="false" onAction="#handleClick" text="Wobble" />
<Button mnemonicParsing="false" onAction="#handleClick" text="Jello" />
</children>
<padding>
<Insets top="20.0" />
</padding>
</HBox>
</children>
<VBox.margin>
<Insets top="20.0" />
</VBox.margin>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Bouncing entrances">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" maxHeight="1.7976931348623157E308" spacing="10.0">
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceIn" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceInDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceInLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceInRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceInUp" />
</children>
<padding>
<Insets top="20.0" />
</padding>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Bouncing exits">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceOut" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceOutDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceOutLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceOutRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BounceOutUp" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Fading entrances">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeIn" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInDownBig" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInLeftBig" />
</children>
</HBox>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInRightBig" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInUp" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeInUpBig" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Fading exits">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOut" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutDownBig" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutLeftBig" />
</children>
</HBox>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutRightBig" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutUp" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FadeOutUpBig" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Filppers">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="Flip" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FlipInX" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FlipInY" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FlipOutX" />
<Button mnemonicParsing="false" onAction="#handleClick" text="FlipOutY" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="LightSpeed">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="LightSpeedIn" />
<Button mnemonicParsing="false" onAction="#handleClick" text="LightSpeedOut" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Rotating entrances">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateIn" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateInDownLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateInDownRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateInUpLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateInUpRight" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Rotating exits">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateOut" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateOutDownLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateOutDownRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateOutUpLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RotateOutUpRight" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Sliding entrances">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideInUp" />
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideInDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideInLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideInRight" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Sliding exits">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideOutUp" />
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideOutDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideOutLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="SlideOutRight" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Zoom entrances">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomIn" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomInDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomInLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomInRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomInUp" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Zoom exits">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomOut" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomOutDown" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomOutLeft" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomOutRight" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ZoomOutUp" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Specials">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="Hinge" />
<Button mnemonicParsing="false" onAction="#handleClick" text="JackInTheBox" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RollIn" />
<Button mnemonicParsing="false" onAction="#handleClick" text="RollOut" />
</children>
</HBox>
</children>
</VBox>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Colors">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="TextGlow" />
<Button mnemonicParsing="false" onAction="#handleClick" text="BackgroundGlow" />
</children>
</HBox>
</children>
<Separator prefWidth="200.0">
<VBox.margin>
<Insets bottom="20.0" left="50.0" right="50.0" top="20.0" />
</VBox.margin>
</Separator>
</VBox>
<VBox alignment="CENTER" prefWidth="582.0">
<children>
<Label text="Utilities">
<font>
<Font size="16.0" />
</font>
</Label>
<HBox alignment="CENTER" prefWidth="200.0" spacing="10.0">
<padding>
<Insets top="20.0" />
</padding>
<children>
<Button mnemonicParsing="false" onAction="#handleClick" text="SequentialAnimation" />
<Button mnemonicParsing="false" onAction="#handleClick" text="ParallelAnimation" />
</children>
</HBox>
</children>
</VBox>
</children>
</VBox>
</content>
</ScrollPane>
</children>
</VBox>
참고사이트
A library of +70 ready-to-use animations for JavaFX
'Java | JavaFX' 카테고리의 다른 글
JavaFX 페이스북 디자인의 로그인(TimeLine를 활용한 화면 전환 애니메이션) (0) | 2019.12.27 |
---|---|
JavaFX 윈도우(stage) 드래그 창 이동 및 최대화, 최소화, 닫기 기능 구현 예제 (0) | 2019.12.27 |
JavaFX 제목표시줄(타이틀바) 없애는 방법 예제 (0) | 2019.12.26 |
JavaFX 마우스 오버 시, 슬라이드 메뉴 예제 (0) | 2019.12.26 |
JavaFX 탭을 활용한 메뉴 및 화면 전환 예제(JFXTabPane) (0) | 2019.12.26 |