JavaFX Wombo组合,根据下拉列表中的选择显示文本

JavaFX Wombo组合,根据下拉列表中的选择显示文本,java,javafx,Java,Javafx,如何在窗口中以例如的形式显示文本: 目的地伦敦,高级折扣 我对JavaFx不太了解,所以我试着做类似的事情 package sample; public class Main extends Application { Stage window; Scene scene; Button button; ComboBox<String> destinationBox, discountBox; @Override public void start(Stage primary

如何在窗口中以例如的形式显示文本:

目的地伦敦,高级折扣

我对JavaFx不太了解,所以我试着做类似的事情

package sample;

public class Main extends Application {


Stage window;
Scene scene;
Button button;
ComboBox<String> destinationBox, discountBox;


@Override
public void start(Stage primaryStage) throws Exception {

    window = primaryStage;
    window.setTitle("Tickets");


    destinationBox = new ComboBox<>();
    destinationBox.getItems().addAll(
            "Berlin", "London", "Madrid", "Moscow", "Paris", "Prague", "Rome"
    );

    discountBox = new ComboBox<>();
    discountBox.getItems().addAll(
            "Full price", "Senior", "Student"
    );
    discountBox.setValue("Full price");
    destinationBox.setValue("Berlin");
    Label label = new Label("Destination " + destinationBox.getValue() + " " + "discount " + discountBox.getValue());


    VBox layout = new VBox(10);
    layout.setPadding(new Insets(20, 20, 20, 20));
    layout.getChildren().addAll(label, discountBox, destinationBox);

    scene = new Scene(layout, 300, 250);
    window.setScene(scene);
    window.show();


}


public static void main(String[] args) {
    launch(args);
}
}
包装样品;
公共类主扩展应用程序{
舞台窗口;
场景;
按钮;
组合框目的框、折扣框;
@凌驾
public void start(Stage primaryStage)引发异常{
窗口=初级阶段;
窗口。设置标题(“票证”);
destinationBox=新建组合框();
destinationBox.getItems().addAll(
柏林、伦敦、马德里、莫斯科、巴黎、布拉格、罗马
);
折扣框=新组合框();
discountBox.getItems().addAll(
“全价”、“高级”、“学生”
);
折扣箱。设定价值(“全价”);
destinationBox.setValue(“柏林”);
标签标签=新标签(“目的地”+destinationBox.getValue()+“+”折扣“+destinationBox.getValue());
VBox布局=新的VBox(10);
布局。设置填充(新插图(20,20,20,20));
layout.getChildren().addAll(标签、折扣箱、目的箱);
场景=新场景(布局,300250);
window.setScene(场景);
window.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}

唯一缺少的是对这两个组合框的值属性的更改进行“反应”的代码。尝试添加以下内容:

StringBinding binding = Bindings.createStringBinding(() -> "Destination " + destinationBox.getValue() + " " + "discount " + discountBox.getValue(), destinationBox.valueProperty(), discountBox.valueProperty());
Label label = new Label();
label.textProperty().bind(binding);

destinationBox.getSelectionModel().getSelectedItem()
而不是
destinationBox.getValue()
@Abra使用ComboBox时,无需使用选择模型。只需“侦听”value属性。