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 |