티스토리 뷰

ComboBox 값 초기화 방법 및 사용법


 이번 시간에는 ComboBox에 값을 넣는 방법과 그 밖에 다른 사용법에 대해서 알아보도록하겠습니다. 


 일단 Main은 건드릴 필요가 없고 아래와 같이 fxml 에 ComboBox를 추가해 봅시다.


sample.fxml

1
2
3
4
<GridPane fx:controller="sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10" stylesheets="@style.css">
    <ComboBox fx:id="combo_box" onAction="#comboChanged" promptText="which one do you like?" prefHeight="36"></ComboBox>
</GridPane>
cs



 

 ComboBox를 추가 한 뒤에 id 값을 추고 comboBox의 선택이 완료 되었을 때 불려지는 onAction 리스너를 지정해 주었습니다. 


 간단하게 css도 넣어보죠.




style.css

1
2
3
4
5
6
7
8
.combo-box{
    -fx-background-color: #ffffff;
    -fx-background-insets: 0;
    -fx-border-color: #B3B9BF;
    -fx-border-radius: 2px;
    -fx-max-height: 32px;
    -fx-padding: -3,0,-3,0;
}
cs



 이제 Controller 에서 데이터를 넣어주고 체크하는 작업만 하면 됩니다.



Controller.java

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
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
 
import java.net.URL;
import java.util.ResourceBundle;
 
public class Controller implements Initializable{
 
    @FXML
    private ComboBox combo_box;
 
    private ObservableList<String> list = FXCollections.observableArrayList("apple""banana""lemon""grape");
 
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        combo_box.setItems(list);
    }
 
    public void comboChanged(ActionEvent event){
        System.out.println("chose the " + combo_box.getValue().toString());
    }
}
 
cs



 일단 ObservaleList 에 다가 데이터를 집어 넣습니다. 


 그리곤 initialize 작업을 할때 combo_box의 setItem을 통해서 데이터를 초기화 시켜줍니다.

 

 그런 뒤에는 이제 comboBox의 데이터가 선택될 때마다 comboChanged 라는 메소드에 들어와 선택된 값을 출력해주게 됩니다.

반응형
댓글