Javafx에서 콤보박스를 만들고 데이터를 넣고, 선택한 데이터 확인하기
javafx에서는 웹과 달리 콤보박스에 바로 데이터를 넣지 않고 ObservableList를 사용해서 데이터를 저장한다.
fxml에서 생성한 콤보박스를 정의하고 데이터를 넣기 위해 ObservableList를 생성한다.
dataType에서 FXCollections를 사용해서 데이터를 생성 후 cmbBox에 setValue로 데이터를 넣는다.
getSelectionModel().getSelectedItem() 로 선택된 comboBox의 데이터를 가져온다.
getSelectionModel().getSelectedIndex() 로 선택된 comboBox의 인덱스 번호를 가져온다.
addListener ChangeListener로 comboBox가 변경될 때마다 발생할 이벤트를 등록한다.
oldValue 는 이전 데이터, newValue는 변경된 데이터, 즉 새로 선택한 comboBox의 데이터이다.
@FXML private JFXComboBox<String> cmbBox;
ObservableList<String> dataType;
@Override
public void initialize(URL location, ResourceBundle resources) {
eventSetting();
dataType = FXCollections.observableArrayList(new String[] {"50", "100", "150"});
cbmBox.setEditable(false);
cmbBox.setItems(dataType);
cmbBox.setValue(dataType.get(0));
}
public void save(){
// comboBox selected data
String data = cmbBox.getSelectionModel().getSelectedItem();
// comboBox selected index
int dataNum = cmbBox.getSelectionModel().getSelectedIndex();
}
// comboBox changed Event
public void eventSetting(){
cmbBox.valueProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue){
System.out.println(observable + ", " + oldValue + ", " + newValue);
}
}
}
'JavaFX' 카테고리의 다른 글
[JavaFX] TableView ChangeListener 마우스 클릭 없이 키보드 Event 조작 (0) | 2020.07.14 |
---|---|
[JavaFX] 윈도우 로그인 화면 제목 타이틀바 없애고 화면 이동 드래그 하기 (0) | 2020.07.13 |
[JavaFX] 자바FX + Hibernate CRUD 데이터 저장, 삭제, 업데이트 (0) | 2020.07.03 |
[JavFX] 자바FX Platform runLater 쓰레드 UI 변경 (0) | 2020.06.24 |
[JavaFX] com sun javafx css parser CSSParser declaration (0) | 2020.06.22 |