[java] JFoenix를 사용하여 실시간 데이터 표시하기
개요
JFoenix는 JavaFX를 위한 자바 라이브러리로, Material Design 스타일을 적용할 수 있도록 도와줍니다. 이 글에서는 JFoenix를 사용하여 실시간 데이터를 표시하는 방법에 대해 알아보겠습니다.
JFoenix 설정하기
먼저, 프로젝트에 JFoenix를 추가해야 합니다. Maven이나 Gradle과 같은 빌드 도구를 사용하는 경우, 아래의 의존성을 추가하면 됩니다.
<!-- for Java 8 -->
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>8.0.10</version>
</dependency>
<!-- for Java 11 -->
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>9.0.10</version>
</dependency>
FXML 파일 작성하기
FXML 파일을 사용하여 UI를 설계할 것입니다. 예를 들어, 실시간 데이터를 나타내는 LineChart를 만들어보겠습니다. 다음은 line_chart.fxml
파일의 내용입니다.
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.chart.LineChart?>
<?import javafx.scene.chart.NumberAxis?>
<?import javafx.scene.chart.XYChart?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<LineChart fx:id="lineChart" layoutX="50.0" layoutY="50.0" prefHeight="300.0" prefWidth="500.0">
<xAxis>
<NumberAxis side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis side="LEFT" />
</yAxis>
</LineChart>
</children>
</AnchorPane>
Controller 클래스 작성하기
FXML 파일을 참조하는 Controller 클래스를 작성해야 합니다. 이 클래스에서는 LineChart에 데이터를 추가하고, 실시간으로 업데이트하는 로직을 구현합니다.
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.XYChart;
import java.net.URL;
import java.util.ResourceBundle;
public class LineChartController implements Initializable {
@FXML
private LineChart<Number, Number> lineChart;
@Override
public void initialize(URL location, ResourceBundle resources) {
XYChart.Series<Number, Number> series = new XYChart.Series<>();
// 임의의 데이터 추가
series.getData().add(new XYChart.Data<>(1, 10));
series.getData().add(new XYChart.Data<>(2, 20));
series.getData().add(new XYChart.Data<>(3, 30));
lineChart.getData().add(series);
}
}
Main 클래스 작성하기
실행 가능한 Main 클래스를 작성합니다. Main 클래스에서는 FXML 파일을 로드하고 컨트롤러를 설정합니다.
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("line_chart.fxml"));
AnchorPane root = loader.load();
LineChartController controller = loader.getController();
// 필요한 경우 컨트롤러에 추가적인 설정 작업을 할 수 있습니다.
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
실행 결과 확인하기
위의 Main 클래스를 실행하면, JFoenix의 LineChart가 보여지며 초기 데이터가 표시됩니다. 이제 필요에 따라 데이터를 추가하고 업데이트하는 기능을 구현할 수 있습니다.
결론
JFoenix를 사용하여 실시간 데이터를 표시하는 방법에 대해 알아보았습니다. JFoenix는 JavaFX에 Material Design 스타일을 적용할 수 있는 강력한 도구이므로, 관련된 프로젝트에서 활용해보시기 바랍니다.