javafX初探(選擇框)
阿新 • • 發佈:2019-02-06
本章我們介紹下拉框的使用。
建立下拉框
ChoiceBox cb = new ChoiceBox(FXCollections.observableArrayList(
"First", "Second", "Third")
);
使用ChoiceBox的構造方法來建立一個下拉框,這個建構函式接受一個obervableList。我們也可以是用setItems方法來達到這一目的,如下:
ChoiceBox cb = new ChoiceBox(); cb.setItems(FXCollections.observableArrayList( "New Document", "Open ", new Separator(), "Save", "Save as") );
需要指出的是,下拉框不僅僅只能包含文字,也可以包含Separator控制元件,用來分割選項。如下圖所示:
為下拉框設定行為
package com.chu.button; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.scene.Scene; import javafx.scene.control.ChoiceBox; import javafx.scene.control.Label; import javafx.scene.control.Separator; import javafx.scene.control.Tooltip; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; public class ChoiceBoxTest extends Application { @Override public void start(Stage primaryStage) throws Exception { FlowPane fp = new FlowPane(); ChoiceBox<Object> cb = new ChoiceBox<>(); cb.setItems(FXCollections.observableArrayList( "English", "Open ", new Separator(), "Save", "Save as") ); final String [] greeting = {"aaa","bbb","ccc","ddd","eee",}; final Label label = new Label(); cb.getSelectionModel().selectedIndexProperty().addListener((ov,oldv,newv)->{ label.setText(greeting[newv.intValue()]); }); cb.setTooltip(new Tooltip("Select the language")); fp.getChildren().add(cb); fp.getChildren().add(label); Scene scene = new Scene(fp,500,300); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
設定提示
cb.setTooltip(new Tooltip("Select the language"));