티스토리 뷰
JavaFX Line Chart 구현하기
이번 시간에는 아주 간단한 (?) JavaFX의 기본으로 제공하는 Line Chart를 구현 해보겠습니다. JavaFX에서 제공하는 Chart는 디자인이 꽤 괜찮습니다. 그래서 목적에 맞게 바꿔 써도 될 정도로 유용합니다.
일단 띄워보기만 하겠습니다.
■ FXML
먼저 FXML 코드 부터 작성을 하죠.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.layout.*?> <?import javafx.scene.chart.LineChart?> <?import javafx.scene.chart.NumberAxis?> <VBox fx:controller="sample.Controller" xmlns:fx="http://javafx.com/fxml" alignment="center"> <LineChart fx:id="lineChart"> <xAxis> <NumberAxis lowerBound="0" upperBound="20" tickUnit="4" fx:id="xAxis"/> </xAxis> <yAxis> <NumberAxis lowerBound="0" upperBound="20" tickUnit="4" fx:id="yAxis"/> </yAxis> </LineChart> </VBox> | cs |
원리는 간단합니다. LineChart 를 넣어주고 그 안에 x축과 y축의 정보를 넣어줍니다. 축은 axis라고 부르는데 axis의 종류는 숫자 데이터로 이루어진 NumverAxis, 숫자 이외의 문자열이나 다른 데이터가 들어갈수 있는 Cateroty Axis가 있습니다..
NumberAxis의 경우는 숫자데이터이기 때문에 최솟값, 최댓값, 눈금 단위를 적어주면 그래프의 축을 자동으로 그려줍니다. 그 옵션들이 각각 lowerBound, upperBound, tickUnit 인거죠.
■ Java Code
자 이제 fxml 코드를 띄워보겠습니다. Controller 클래스는 만들기만 해주시고 따로 작성할 코드는 없습니다. MainClass 에 아래와 같이 적어주고 한번 띄워보죠.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("chart.fxml")); primaryStage.setTitle("Chart Test"); primaryStage.setScene(new Scene(root, 400, 400)); primaryStage.show(); } public static void main(String[] args) { launch(args); } } | cs |
■ 결과 화면
조금 허접한것 같긴 하지만 그래도 차트 같긴 하죠?
이번 시간에는 간단하게 띄워보기만 했는데 다음시간에는 데이터도 넣고 스타일도 좀 바꿔보겠습니다 !
■ Fix Error
아 그런데 tickUnit을 5로 정하지 않았었나요?? 결과화면에는 값의 단위가 2.5로 되어있습니다. 이게 어떻게 된 일이죠?
살펴보니 Axis에는 자동적으로 autoRange라는 속성이 true로 설정되어 있습니다. 말그대로 자동적으로 길이에 비례해서 tickUnit을 정해버린다는 것입니다. 해결방법은 아주 간단합니다. setAutoRanging을 false로 바꿔주면 되죠. 아래처럼 말입니다.
1 2 3 | xAxis.setAutoRanging(false); yAxis.setAutoRanging(false); | cs |
FXML 상에서도 가능합니다.
1 | <NumberAxis lowerBound="0" upperBound="20" tickUnit="4" fx:id="xAxis" autoRanging="false"/> | cs |
그럼 결과 화면은..
정상적으로 뜹니다.
'프로그래밍 > JavaFX' 카테고리의 다른 글
[JavaFX] 컨트롤 이미지 파일로 캡쳐하기 (0) | 2017.02.22 |
---|---|
[JavaFX] JavaFX Line Chart 데이터 삽입 방법 (0) | 2017.02.16 |
[JavaFX] FXML Loader를 이용해서 커스텀 컨트롤 UI 구현하기 (0) | 2017.02.15 |
[JavaFX] resources 폴더의 CSS 파일 적용하기 (0) | 2017.02.14 |
[JavaFX] Button 마우스 커서를 갖다 댔을 때 커서 모양 변경하기 (0) | 2017.02.13 |
- Total
- Today
- Yesterday
- JavaFX 종료
- 방통대 과제물
- java
- TableView
- intelij
- effective java
- 배낭 여행
- 자전거 여행
- 자전거
- JavaFX
- 스프링부트
- JavaFX Window Close
- 일본 여행
- 배낭여행
- springboot
- 자바
- 이펙티브
- git
- effectivejava
- 일본 자전거 여행
- windows
- 이펙티브 자바
- 텐트
- 일본여행
- 이펙티브자바
- JavaFX Table View
- 일본 배낭여행
- 인텔리제이
- Java UI
- 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 |
29 | 30 | 31 |