JavaFX 속성 감시와 바인딩
속성 바인딩
- JavaFX 속성은 다른 속성과 바인딩될 수 있다.
- 바인딩된 속성들은 하나가 변경되면 자동적으로 다른 하나도 변경된다.
- xxxProperty() 메서드가 리턴하는 Property 구현 객체의 bind() 메서드를 이용하면 된다.
- 단방향 바인딩 : bind() 메서드, 바인딩 받는 쪽은 변경 불가함
- 양방향 바인딩 : bindBidirectional()
Bindings 클래스
- Bindings의 정적 메서드는 속성을 연산하거나, 다른 타입으로 변환한 후 바인딩하는 기능을 제공한다.
JavaFX 컨트롤
버튼 컨트롤
- 버튼 컨트롤은 마우스로 클릭할 수 있는 컨트롤로 ButtonBase를 상속하는 하위 컨틀롤을 말한다.
- Button, CheckBox, RadioButton, ToggleButton, Hyperlink 등.
- setGraphic() : 아이콘을 추가할 수 있다.
- userData 속성 : 프로그램에서 처리하는 데이터, Check, Radio, Toggle에 해당
- toggleGroup 속성 : Radio, Toggle에서 ToggleGroup으로 묶어 같은 그룹 내에서 하나의 컨트롤만 선택하게 할 수 있다.
입력 컨트롤
- 입력 컨트롤은 한 줄 입력을 위한 TextField, 다중 행 입력을 위한 TextArea, 패스워드 입력을 위한 PasswordField, 제한된 항목에서 선택하는 ComboBox 가 있다.
- DatePicker, ColorPicker, HTMLEditor 등.
뷰 컨트롤
- 뷰 컨트롤은 텍스트 또는 이미지 등을 보여주는데 목록 형태로 보여주는 ListView, 테이블 형태로 보여주는 TableView, 이미지를 보여주는 ImageView가 있다.
JavaFX 컨트롤 - 뷰 컨트롤
ImageView 컨트롤
- ImageView는 이미지를 보여주는 컨트롤.
- fitWidth, fitHeight 속성 : ImageView의 폭과 높이를 지정.
- preserveRatio 속성 : 이미지의 종횡비를 유지 여부.
ListView 컨트롤
- ListView는 항목들을 목록으로 보여주는 컨트롤.
- ListView에 항목을 추가하려면 setItems(ObservableList<T> value) 메소드를 사용
- ObservableList 구현 객체는 FXCollections.observableArrayList(E ... items) 정적 메소드로 생성
- 선택된 인덱스와 항목을 얻으려면 속성 감시를 이용할 수 있다.
- getSelectionModel()메소드 이용하여 MultipleSelectionModel을 얻고나서
- selectedIndexProperty() 또는 selectedItemProperty()에 리스너를 설정
TableView 컨트롤
- TableView는 테이블 형태로 데이터를 보여주는 컨트롤.
- TableView에 행(row)을 추가하려면 행의 데이터를 가지는 모델(model) 객체를 필요.
- 모델 속성 타입은 컬럼 값의 데이터 타입에 따라 javafx.beans.property 패키지의
- SimpleXXXProperty를 사용하면 된다.
- TableColumn의 setCellValueFactory() 메서드는 매개값으로 제공되는 PropertyValueFactory(“모델속성명”)을 이용해서 모델 속성값을 TableColumn 값으로 세팅.
- TableView에서 선택된 행의 인덱스와 모델 객체를 얻으려면 속성 감시를 이용
- getSelectionModel() 메서드로 TableViewSelectionModel을 얻고, selectedIndexProprety 또는 selectedItemProperty에 리스너를 설정하면 된다.
JavaFX 컨트롤
미디어 컨트롤
- 미디어 컨트롤에는 비디오를 재생할 수 있는 MediaView 컨트롤과 볼륨 조절 및 재생 위치조절을 위한 Slider 컨트롤 그리고 현재 진행 상태를 보여주는 ProgressBar, ProgressIndicator 컨트롤이 있다.
- MediaView 컨트롤은 비디오를 보여주는 용도로만 사용하며, 레이아웃상에서 비디오가 위치할 영역을 표시한다.
- MediaView 컨트롤은 비디오 재생을 위해 MediaPlayer가 있어야 한다.
- MediaPlayer의 상태에 따라 자동 실행해야 할 코드들은 Runnable의 run() 메서드에 작성하고, setOnXXX() 메소드로 등록한다.
- MediaPlayer의 상태에 따라 자동 실행되는 Runnable 설정 메소드
'IT공부 > JAVA' 카테고리의 다른 글
모바일에서 웹사이트 천지인 자판 입력 오류 (0) | 2021.06.09 |
---|---|
[Tibero] Cannot create JDBC driver of class 'net.sf.log4jdbc.DriverSpy' for connect URL 'jdbc:log4jdbc:tibero:thin:@URL:PORT:tibero' (1) | 2021.04.12 |
JavaFX 이벤트 처리 (0) | 2019.05.27 |
람다식(Lambda Expressions in Java) (0) | 2019.05.22 |
멀티쓰레드 (0) | 2019.05.21 |