3 回答

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

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
我不確定您是否需要使用 SQL,但如果您想從 SQL 表中讀取數(shù)據(jù),這可能是一個(gè)選項(xiàng)。如果您想在選項(xiàng)中進(jìn)行硬編碼并使用 if 語句邏輯使以下下拉列表出現(xiàn)在選擇前一個(gè)下拉列表之后,這是一種可能的解決方案。
我為一個(gè)項(xiàng)目做了類似的事情。以下是我創(chuàng)建下拉菜單的步驟:首先,創(chuàng)建一個(gè)可觀察列表:
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)