━━━━ ◇ ━━━━
Java/JavaFx

JavaFx 12. ComboBox 사용하기

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
32
33
34
35
36
37
package application;
 
import java.net.URL;
import java.util.ResourceBundle;
 
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 javafx.scene.control.Label;
 
public class MainController implements Initializable{
 
    @FXML
    public Label  myLabel;
    
    @FXML
    public ComboBox<String> combobox;
    
    ObservableList<String> list = FXCollections.observableArrayList("Mark""Tom""John""Jack");
    
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        combobox.setItems(list);    
    }
    
    public void comboChange(ActionEvent event) {
        myLabel.setText(combobox.getValue());
    }
    public void buttonAction(ActionEvent event) {
        combobox.getItems().addAll("Ram""Ben""Steve""Ma");
        
    }
}
 
cs


콤보 박스를 사용하는 방법은 

1. Initializable 을 구현한다.

2. ObservalbeList 를 구성한다.

3. 아이템을 콤보박스에 붙인다.


먼저 Initializable 를 구현 해야 합니다. 왜냐하면 스테이지가 초기화 될때 콤보박스에 아이템이 설정되어야 하기 때문입니다.

22번 라인을 보면, String 타입의 리스트를 만들고 있습니다.

그리고 26번 라인에서 그 리스트를 콤보박스에 붙이는 것이죠.


콤보 박스를 사용하는 또 다른 방법은 fxml 에서 바로 코딩을 하는 방법입니다.

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
<?xml version="1.0" encoding="UTF-8"?>
 
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.collections.*?>
 
<AnchorPane prefHeight="300.0" prefWidth="300.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainController">
   <children>
      <ComboBox fx:id="combobox" layoutX="74.0" layoutY="106.0" onAction="#comboChange" prefHeight="52.0" prefWidth="153.0" promptText="Select Name" >
          <!-- <items>
            <FXCollections fx:factory="observableArrayList"  >
                <String fx:value="Item 1" />
                <String fx:value="Item 2" />
                <String fx:value="Item 3" />
                <String fx:value="Item 4" />
            </FXCollections>        
          </items> -->
         </ComboBox>
      
      <Label fx:id="myLabel" layoutX="74.0" layoutY="29.0" prefHeight="64.0" prefWidth="153.0" text="Label" />
      <Button layoutX="74.0" layoutY="196.0" mnemonicParsing="false" onAction="#buttonAction" prefHeight="52.0" prefWidth="153.0" text="Button" />
   </children>
</AnchorPane>
 
cs


첫번째 방법으로 아이템을 구성하면 위 소스에서 12~ 19 라인이 없습니다.

12~19 라인은 수동으로 아이템을 입력하는 방법입니다.

이 방법을 사용하실때 주의하실 점은 7번 라인을 보시면 collections 를 import  한것을 알 수 있습니다. 

이게 자동완성으로 되지 않았습니다. 그래서 수동으로 임포트 시켰습니다.



콤보박스는 이런식으로 보여집니다.


'Java > JavaFx' 카테고리의 다른 글

JavaFx 14. TreeView 사용하기  (0) 2016.08.17
JavaFx 13. ListView 사용하기  (0) 2016.08.17
JavaFx 11. ImageView 사용하기  (0) 2016.08.17
JavaFx 10. 로그인 기능 만들기  (0) 2016.08.17
JavaFx 08. 계산기 만들기  (2) 2016.08.17
COMMENT