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條經驗 獲得超14個贊
我只想擁有三個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");
這會向下拉列表添加選項。提醒一下,您還必須將下拉列表添加到窗格中。
添加回答
舉報