3 回答
TA贡献1784条经验 获得超9个赞
这是 JavaFX 中的一个快速示例,可让您开始让它们在第一个框的操作中动态更改第二个框的设置值,依此类推,无论您需要多少组合框
public class Main extends Application {
@Override
public void start(Stage stage) {
ComboBox comboBox2 = new ComboBox();
ComboBox comboBox = new ComboBox();
comboBox.getItems().addAll("Country 1", "Country 2", "Country 3");
comboBox.setOnAction(event -> {
comboBox2.getItems().clear();
for (int i = 0; i < 5; i++) {
comboBox2.getItems().add("State "+i+" "+comboBox.getValue().toString());
}
});
VBox vBox = new VBox();
vBox.getChildren().addAll(comboBox, comboBox2);
Scene scene = new Scene(vBox);
stage = new Stage();
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) { launch(args); }
}
TA贡献2065条经验 获得超13个赞
我只想拥有三个ChoiceBox。第一个可能是静态填充的,而第二个和第三个最初是隐藏的(不可见)。
在第一个的选择事件中,您通过在第一个中获取所选元素并将其设置为可见来填充第二个。第三个也一样,在第二个的评选活动上。
提示:设置一个 ObservableList 作为第二个和第三个 ChoiceBox 的项,这样当你得到一个新的选择时你只需要改变列表中的元素。
最后提示:当第一个 ChoiceBox 更改选择时,记得再次隐藏第三个框!
TA贡献1828条经验 获得超13个赞
我不确定您是否需要使用 SQL,但如果您想从 SQL 表中读取数据,这可能是一个选项。如果您想在选项中进行硬编码并使用 if 语句逻辑使以下下拉列表出现在选择前一个下拉列表之后,这是一种可能的解决方案。
我为一个项目做了类似的事情。以下是我创建下拉菜单的步骤:首先,创建一个可观察列表:
import javafx.collections.*;
#i should say wildcard imports are not optimal and you should find out what specific import you need but I am not sure so I used the wildcard.
import java.util.ArrayList;
#I am not sure what imports you have already, but you made need more
ObservableList varName = FXCollections.observableArrayList();
ComboBox<String> varName2 = new ComboBox<>(varName);
您应该在类级别执行此操作以避免任何范围问题。第二步是向下拉菜单添加数据。您使用 .add() 方法执行此操作
varName.add("option 1");
varName.add("option 2");
这会向下拉列表添加选项。提醒一下,您还必须将下拉列表添加到窗格中。
添加回答
举报