13. JavaFX 과제
지금까지 학습한 내용을 기반으로 5가지 과제를 수행해 보자.
과제 1: 학생 점수 관리 메인 화면
학생들의 점수를 보여주는 애플리케이션의 메인 윈도우를 만든다.
생성해야 할 파일과 역할 | 파일명 | 역할 | | :———————- | :——————- | | AppMain.java | 메인 클래스 | | root.fxml | 메인 윈도우 레이아웃 | | RootController.java | 컨트롤러 클래스 |
- root.fxml:
BorderPane을 루트로 사용.- 중앙(Center):
TableView배치 (이름, 국어, 수학, 영어 컬럼 추가). - 하단(Bottom):
HBox배치 후 [추가] 버튼 추가.
과제 2: 학생 정보 추가 다이얼로그
메인 윈도우에서 [추가] 버튼을 클릭하면 학생 정보 추가 다이얼로그가 실행되도록 만든다.
생성해야 할 파일과 역할 | 파일명 | 역할 | | :———— | :——————————— | | form.fxml | 학생 정보 추가 다이얼로그 레이아웃 |
- form.fxml:
BorderPane을 루트로 사용.- 중앙(Center):
GridPane에 4개의Label과 4개의TextField배치. - 하단(Bottom):
HBox에 [저장], [취소] 버튼 배치.
- 기능: [취소] 버튼 클릭 시 다이얼로그 닫기.
과제 3: 테이블에 데이터 추가
다이얼로그에서 정보를 입력하고 [저장] 버튼을 클릭하면 메인 윈도우의 TableView에 행이 추가되도록 한다.
생성해야 할 파일과 역할 | 파일명 | 역할 | | :————— | :——————————————- | | Student.java | 테이블 행의 데이터를 가지고 있는 모델 클래스 |
과제 4: 막대 그래프 (BarChart) 연동
메인 윈도우 하단에 [학생별 막대 그래프] 버튼을 추가하고, 클릭 시 막대 그래프 다이얼로그가 실행되도록 한다.
생성해야 할 파일과 역할 | 파일명 | 역할 | | :—————- | :——————————– | | barchart.fxml | 막대 그래프 다이얼로그의 레이아웃 |
- barchart.fxml:
BorderPane을 루트로 사용.- 중앙(Center):
BarChart배치. - 하단(Bottom):
HBox에 [닫기] 버튼 배치.
- 기능: [닫기] 버튼 클릭 시 다이얼로그 닫기.
과제 5: 파이 그래프 (PieChart) 이벤트 처리
TableView에서 한 행을 더블 클릭하면, 해당 학생의 과목 점수를 보여주는 파이 그래프 다이얼로그가 실행되도록 한다.
생성해야 할 파일과 역할 | 파일명 | 역할 | | :—————- | :——————————– | | piechart.fxml | 파이 그래프 다이얼로그의 레이아웃 |
- piechart.fxml:
BorderPane을 루트로 사용.- 중앙(Center):
PieChart배치. - 하단(Bottom):
HBox에 [닫기] 버튼 배치.
- 기능:
TableView.setOnMouseClicked()로 핸들러 등록.MouseEvent.getClickCount() == 2일 때만 다이얼로그 실행.- [닫기] 버튼 클릭 시 다이얼로그 닫기.