티스토리 뷰
프로그래밍/JavaFX
[JavaFX] StringProperty를 이용해 CustomControl fxml에서 Text 수정하
rlawlstjd007 2017. 2. 1. 13:02StringProperty를 이용해 fxml에서 text 수정가능한 컨트롤 만들기
이번 시간에는 Custom Control을 fxml상에서 속성을 수정할 수 있게 하는 방법에 대해서 알아보겠습니다.
저희는 보통 fxml에서 Text를 수정할 때 아래와 같이 합니다.
1 | <Button text="MyButton"/> | cs |
그럼 간단하게 Text 를 수정할 수 있습니다. 지금 중점적으로 봐야 할 것은 단순히 fxml에서 Text를 수정할 수 있는게 아니라
fxml 상에서 컨트롤의 속성을 수정할 수 있다는 것입니다. 분명히 필요한 상황이 있습니다.
저 같은 경우는 폰트 크기를 fxml에서 유동적으로 조절해야 하는 상황이 발생했습니다.
이럴 때는 컨트롤 클래스에서 Property를 만들어주고 fxml에서 수정된 Property를 이용해서 세팅을 해주는 방법을 사용하면 됩니다.
방법은 다음과 같습니다.
1. 컨트롤 클래스 안에 프로퍼티를 만들어줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | private SimpleIntegerProperty fontSize; public SimpleIntegerProperty fontSizeProperty() { if (fontSize == null) { fontSize = new SimpleIntegerProperty(this, "font-size", 14) { //font-size 라는 이름으로 fxml 에서 수정이 가능합니다. }; } return fontSize; } public void setFontSize(int size) { fontSizeProperty().setValue(size); } public int getFontSize() { return fontSize == null ? 14 : fontSizeProperty().getValue(); } | cs |
2. 설정한 프로퍼티 Name으로 FXML 상에서 수정 해줍니다.
1 | <MyCustomControol fx:id="myCustomControl" fontSize="12" ><MyCustomControl/> | cs |
3. setter를 이용해서 클래스 상에서 받은 값을 가져와서 처리합니다.
이런 형태로 필요한 프로퍼티를 직접 만들어서 사용을 할 수 있습니다. Text 라던지 Size 라던지, 한 번 참고해 보시면 좋을듯 합니다.
반응형
'프로그래밍 > JavaFX' 카테고리의 다른 글
[JavaFX] File Chooser를 이용해 txt 파일 불러와 출력하기 (3) | 2017.02.07 |
---|---|
[JavaFX] GridPane을 이용한 상대적 레이아웃 작성 방법(비율을 이용한 사이즈 조정) (0) | 2017.02.02 |
[JavaFX] FileChooser 를 통해 txt 파일 읽어와 TextArea에 보여주기 (0) | 2017.01.17 |
[JavaFX] TreeView 다루는 법 (TreeCell 인스턴스 이용) (0) | 2017.01.10 |
[JavaFX] Container 내의 요소에 Margin 속성 주는 방법 (0) | 2016.12.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- JavaFX
- 방통대 과제물
- windows
- 배낭여행
- 일본 배낭여행
- Java UI
- effective java
- 일본 자전거 여행
- 이펙티브 자바
- 텐트
- git
- 인텔리제이
- 이펙티브
- JavaFX Table View
- 일본여행
- JavaFX Window Close
- 이펙티브자바
- 배낭 여행
- 자전거
- TableView
- 스프링부트
- springboot
- intelij
- 자바
- JavaFX 종료
- 자전거 여행
- effectivejava
- java
- 일본 여행
- 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 |
글 보관함