[자바] JavaFX 설치부터 파이 차트 예제

Kyu·2021년 2월 6일
1

Java 공부기록

목록 보기
29/40

설치

  1. JavaFX 를 다운받는다.
  2. 새로운 프로젝트를 생성하고 Java FX 를 추가한다
  3. jar 파일들을 라이브러리에 추가한다.
  4. Java 버전 11 이상이면 run configuration에서 VM options에 다음과 같이 추가해준다.
    --module-path 방금다운로드한_JavaFX의_lib_경로 --add-modules javafx.controls,javafx.fxml

예시: --module-path /Users/kyu/Downloads/javafx-sdk-11.0.2/lib --add-modules javafx.controls,javafx.fxml

  1. JavaFX로 새로운 프로젝트를 생성하면 샘플 패키지가 있다. 실행하면 Hello World! 라는 제목의 작은 창이 뜨면 성공! 안뜨고 에러나면 구글 ㄱㄱ

Scene Builder

Scene Builder: JavaFX를 GUI로 만들 수 있는 개꿀템
다운

설정

  1. 속성에 들어간다
  2. language/Frameworks 에서 JavaFX를 클릭하고 path를 설치한 app파일로 지정해준다

화면 보여주기위해 Group() 클래스 선언

Group root = new Group();


//화면 보여주는 부분
//컴포넌트 넣은 뒤에 선언해주면 됨
Scene scene = new Scene(root, 600, 400);
primaryStage.setTitle("MyJavaFX");
primaryStage.setScene(scene);
primaryStage.show();

버튼만들기

Button b = new Button("난버튼이다");
root.getChildren().add(b);

버튼에 Action 추가하기

Button b = new Button("난버튼이다");
root.getChildren().add(b);
b.setOnAction(this);
  • this 부분은 EventHalndler 를 구현한 클래스를 넣으면 됨
  • 오버라이드한 handle() 를 구현한다.

파이차트만들기

 ObservableList<PieChart.Data> pieData = FXCollections.observableArrayList(
                new PieChart.Data("IT Programs", 40),
                new PieChart.Data("Nursing", 70),
                new PieChart.Data("Accounting", 20),
                new PieChart.Data("Arts", 30),
                new PieChart.Data("Enginerring", 10)
        );

        PieChart pChart = new PieChart(pieData);

        root.getChildren().add(pChart);

버튼에 FileChooser 추가하기

    @Override
    public void handle(ActionEvent actionEvent) {
  
        String path;
  
        try {
            // FileChooser 생성
            FileChooser fc = new FileChooser();
  
            // csv 파일만 불러오도록 필터링하기
            fc.getExtensionFilters().addAll(
                    new ExtensionFilter("CSV Files", "*.csv")
            );
  
            // 파일 선택하는 화면 띄우기
            File selectedFile = fc.showOpenDialog(null);

            // 선택된 파일 절대 경로 return 해서 얻기
            if (selectedFile != null) {
                path = selectedFile.getAbsolutePath();
            } else {
                System.out.println("file is not vaild");
            }

참고

profile
TIL 남기는 공간입니다

0개의 댓글