3 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個贊
這是 JavaFX 中的一個快速示例,可讓您開始讓它們在第一個框的操作中動態(tài)更改第二個框的設(shè)置值,依此類推,無論您需要多少組合框
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貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊
我只想擁有三個ChoiceBox。第一個可能是靜態(tài)填充的,而第二個和第三個最初是隱藏的(不可見)。
在第一個的選擇事件中,您通過在第一個中獲取所選元素并將其設(shè)置為可見來填充第二個。第三個也一樣,在第二個的評選活動上。
提示:設(shè)置一個 ObservableList 作為第二個和第三個 ChoiceBox 的項(xiàng),這樣當(dāng)你得到一個新的選擇時你只需要改變列表中的元素。
最后提示:當(dāng)?shù)谝粋€ ChoiceBox 更改選擇時,記得再次隱藏第三個框!

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個贊
我不確定您是否需要使用 SQL,但如果您想從 SQL 表中讀取數(shù)據(jù),這可能是一個選項(xiàng)。如果您想在選項(xiàng)中進(jìn)行硬編碼并使用 if 語句邏輯使以下下拉列表出現(xiàn)在選擇前一個下拉列表之后,這是一種可能的解決方案。
我為一個項(xiàng)目做了類似的事情。以下是我創(chuàng)建下拉菜單的步驟:首先,創(chuàng)建一個可觀察列表:
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);
您應(yīng)該在類級別執(zhí)行此操作以避免任何范圍問題。第二步是向下拉菜單添加數(shù)據(jù)。您使用 .add() 方法執(zhí)行此操作
varName.add("option 1");
varName.add("option 2");
這會向下拉列表添加選項(xiàng)。提醒一下,您還必須將下拉列表添加到窗格中。
添加回答
舉報(bào)