Combobox 连接两个选择框或组合框

Combobox 连接两个选择框或组合框,combobox,javafx,box,choice,Combobox,Javafx,Box,Choice,有没有办法连接两个选择框或组合框。哪一个都不重要。 我想更改框2中的项目(整数),具体取决于框1(字符串)中选择的内容 例如: 方框一: 纸杯蛋糕 饼干 方框二: 如果是纸杯蛋糕,那么数字1,2,3,28,29,30. 如果是Cookie,则数字1、2、3、,27,28. 否则空盒子 数字可以通过数组输入。我遇到的问题是如何使用事件处理程序更改第二个框中的内容。 谢谢。根据您的要求,可以有不同的方法。可以是: @Override public void start( Stage stage )

有没有办法连接两个选择框或组合框。哪一个都不重要。 我想更改框2中的项目(整数),具体取决于框1(字符串)中选择的内容

例如:
方框一:
纸杯蛋糕
饼干

方框二:
如果是纸杯蛋糕,那么数字1,2,3,28,29,30.
如果是Cookie,则数字1、2、3、,27,28.
否则空盒子

数字可以通过数组输入。我遇到的问题是如何使用事件处理程序更改第二个框中的内容。

谢谢。

根据您的要求,可以有不同的方法。可以是:

@Override
public void start( Stage stage )
{

    final Map<String, ObservableList<Integer>> map = new HashMap<>();
    map.put( "cupcakes", FXCollections.observableArrayList( 1,2,3,4,5,6));
    map.put( "cookies",  FXCollections.observableArrayList(11,12,13,14,15,16));

    final ComboBox<String> comboOne = new ComboBox<>();
    comboOne.getItems().addAll(
            "cupcakes",
            "cookies",
            "empty box"
    );
    final ComboBox<Integer> comboTwo = new ComboBox<>();

    comboOne.getSelectionModel().selectedItemProperty().addListener( new ChangeListener<String>()
    {
        @Override
        public void changed( ObservableValue<? extends String> observable, String oldValue, String newValue )
        {
            comboTwo.setItems( 
                    map.containsKey( newValue ) ? map.get( newValue ) : FXCollections.emptyObservableList()
            );
        }
    } );

    VBox grid = new VBox( 20 );
    grid.getChildren().addAll( comboOne, comboTwo );

    Scene scene = new Scene( grid, 450, 250 );
    stage.setScene( scene );
    stage.show();
}
@覆盖
公众假期开始(阶段)
{
final Map=new HashMap();
地图放置(“纸杯蛋糕”,FXCollections.observableArrayList(1,2,3,4,5,6));
地图放置(“cookies”,FXCollections.observableArrayList(11,12,13,14,15,16));
final ComboBox comboOne=新ComboBox();
comboOne.getItems().addAll(
“纸杯蛋糕”,
“饼干”,
“空盒子”
);
最终组合框comboTwo=新组合框();
comboOne.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener())
{
@凌驾

更改公众假期(ObserviveValue您是否有一个将框1的内容映射到框2的内容的确定性函数?您是否有到目前为止尝试过的代码?我不确定您的意思,但我尝试过的是使用if/else来更改框2的项目,但是没有成功。
code in backticks
ChoiceBox cbBake;ChoiceBox cbNum=new ChoiceBox();String[]baked={Select”,“cupcake”,“cookie”};Integer[]cupcake={1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};Integer[]cookie={1,2,3,4,6,7,8,9,10,11,12,14,16;cbBake=new ChoiceBox(FXCollections.observablaylist(bake));if(cbBake.getSelectionModel().equals(纸杯蛋糕)){/**在这里我无法进入其他选择框*/