티스토리 뷰
들어가며
- JavaFX로 간단하게 컨트롤에 슬라이드 애니메이션을 적용하는 방법을 알아보겠습니다.
- 예제 프로그램은 아래 이미지 처럼 'Animate!' 버튼을 클릭하면 슬라이드 애니메이션으로 오른쪽, 왼쪽 화면으로 좌우 전환이 되는 프로그램 입니다.
- 원본 소스는 아래 위치에 있습니다.
rlawlstjd0077/JavaFxPlayGround
Contribute to rlawlstjd0077/JavaFxPlayGround development by creating an account on GitHub.
github.com
구현방법
SimpleAnimation.fxml
<fx:root style="-fx-background-color: white;" type="BorderPane" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" prefWidth="350" prefHeight="250">
<top>
<HBox alignment="CENTER" spacing="30">
<Button fx:id="button" text="Animate!"/>
</HBox>
</top>
<center>
<Pane prefHeight="250" prefWidth="350">
<HBox fx:id="container">
<AnchorPane prefHeight="250" prefWidth="350">
<HBox AnchorPane.bottomAnchor="0" AnchorPane.topAnchor="0" AnchorPane.leftAnchor="0" AnchorPane.rightAnchor="0" alignment="CENTER">
<Label text="왼쪽 화면" alignment="CENTER" prefHeight="35" prefWidth="180">
<font>
<Font name="Roboto Regular" size="30.0" />
</font>
</Label>
</HBox>
</AnchorPane>
<AnchorPane layoutX="350" prefHeight="250" prefWidth="350">
<HBox AnchorPane.bottomAnchor="0" AnchorPane.topAnchor="0" AnchorPane.leftAnchor="0" AnchorPane.rightAnchor="0" alignment="CENTER">
<Label text="오른쪽 화면" alignment="CENTER" prefHeight="35" prefWidth="180" >
<font>
<Font name="Roboto Regular" size="30.0" />
</font>
</Label>
</HBox>
</AnchorPane>
</HBox>
</Pane>
</center>
</fx:root>
- 대략적으로 보면 Pane 안에 왼쪽 화면 (AnchorPane), 오른쪽 화면 (AnchorPane) 이 나란히 들어가 있는 구조 입니다.
SimpleAnimationController.java
public class SimpleAnimationController extends BorderPane {
@FXML
private HBox container;
@FXML
private Button button;
boolean flag;
public SimpleAnimationController() {
FxUiUtil.initializeFont();
FxUiUtil.loadFxml(this);
initUI();
}
private void initUI() {
button.setOnAction(event -> {
if (flag) {
toLeft();
} else {
toRight();
}
flag = !flag;
} );
}
private void toRight() {
final Timeline timeline = new Timeline();
timeline.setCycleCount(1);
final KeyValue kv = new KeyValue(container.layoutXProperty(), -350);
final KeyFrame kf = new KeyFrame(Duration.millis(500), kv);
timeline.getKeyFrames().add(kf);
timeline.play();
}
private void toLeft() {
final Timeline timeline = new Timeline();
timeline.setCycleCount(1);
final KeyValue kv = new KeyValue(container.layoutXProperty(), 0);
final KeyFrame kf = new KeyFrame(Duration.millis(500), kv);
timeline.getKeyFrames().add(kf);
timeline.play();
}
}
- JavaFX에서 Animation을 적용하기 위해서는 Timeline 이라는 클래스를 이용합니다.
- JavaFX Animation 구현방법에 대한 자세한 내용은 아래 포스트 참고
(JavaFX) JavaFX 애니메이션 사용법
이번 시간에는 JavaFX에서 애니메이션을 사용하는 방법에 대해서 알아보도록 하겠습니다. JavaFX 애니메이션 종류 Transitions 내부 타임라인을 이용한 애니메이션 Fade Transition 주어진 시간 동안 투
jinseongsoft.tistory.com
- KeyValue로 이동할 시작, 종료 Posision 정보를 KeyFrame으로 속도를 조절한다고 생각하면 됩니다.
SimpleAnimationControllerTest.java
public class SimpleAnimationControllerTest extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
SimpleAnimationController animationController = new SimpleAnimationController();
primaryStage.setScene(new Scene(animationController));
primaryStage.setTitle("Animation Test");
primaryStage.show();
}
@Test
public void test() {
launch();
}
}
- 테스트 코드를 만들어 전시해주도록 합시다.
관련글
(JavaFX) JavaFX TableView 사용법 ver.2
들어가며 이전에 썼던 글인 JavaFX TableView 사용법 이 시간이 지나서 보니 조금 설명이 허접한 것 같기도 하고.. 리뉴얼이 필요할 것 같았다. [JavaFX] Table View 사용법 Table View 사용법 이번 시간에는 Ja
jinseongsoft.tistory.com
[JavaFx] Tray Icon 전시 방법
이번 시간에는 JavaFX에서 Tray Icon을 전시하는 방법에 대해서 알아보도록 하겠습니다. Tray Icon이란? Tray Icon은 작업 표시줄에 표시되는 아이콘입니다. 아래와 같이 말이죠. JavaFX Application을 개..
jinseongsoft.tistory.com
(JavaFX) JavaFX ImageView 사용법 (이미지 전시 방법)
들어가며 JavaFX ImageView 를 사용하여 Image를 전시하는 방법에 대해서 알아보도록 하겠습니다. 테스트를 위해서는 Sample로 사용할 이미지가 필요하니 필요에 따라 준비하시면 좋습니다. JavaFX ImageVie
jinseongsoft.tistory.com
- Total
- Today
- Yesterday
- JavaFX Window Close
- 방통대 과제물
- 일본 자전거 여행
- JavaFX 종료
- 배낭 여행
- intelij
- Java UI
- 배낭여행
- windows
- 일본 여행
- 이펙티브
- 이펙티브자바
- 스프링부트
- effectivejava
- 일본여행
- springboot
- 자전거 여행
- git
- 자전거
- 자바
- TableView
- JavaFX Table View
- java
- effective java
- JavaFX
- JavaFX 테이블뷰
- 인텔리제이
- 일본 배낭여행
- 텐트
- 이펙티브 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |