Combobox 连接两个选择框或组合框
有没有办法连接两个选择框或组合框。哪一个都不重要。 我想更改框2中的项目(整数),具体取决于框1(字符串)中选择的内容 例如: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 )
方框一:
纸杯蛋糕
饼干 方框二:
如果是纸杯蛋糕,那么数字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(纸杯蛋糕)){/**在这里我无法进入其他选择框*/