亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何設置動態填充的多級下拉框表單?

如何設置動態填充的多級下拉框表單?

眼眸繁星 2023-03-02 15:15:00
這是我的第一個 StackOverflow 問題。我正在實習,遇到了一些障礙。我想在要求您提供國家和州的表單中實現類似于下拉框的功能,在選擇國家后,州菜單會自動填充該國家/地區的州。我有建筑物、這些建筑物中的樓層以及這些樓層中的空間的數據。我想設置一個多層下拉框,以便使用我正在開發的 JavaFX 表單的人可以從第一個菜單中選擇一個建筑物,然后他可以在第二個下拉框中從該建筑物中選擇樓層,并且這將使他能夠在該樓層的建筑物內選擇確切的辦公室或空間。我只想根據第一個和第二個選擇正確填充第二個和第三個下拉框。我最初的想法是擁有多層表,其中構建表中的條目與子表有關系。我不知道這是否可能。我想要一些指導。謝謝。
查看完整描述

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); }


}


查看完整回答
反對 回復 2023-03-02
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

我只想擁有三個ChoiceBox。第一個可能是靜態填充的,而第二個和第三個最初是隱藏的(不可見)。

在第一個的選擇事件中,您通過在第一個中獲取所選元素并將其設置為可見來填充第二個。第三個也一樣,在第二個的評選活動上。

提示:設置一個 ObservableList 作為第二個和第三個 ChoiceBox 的項,這樣當你得到一個新的選擇時你只需要改變列表中的元素。

最后提示:當第一個 ChoiceBox 更改選擇時,記得再次隱藏第三個框!


查看完整回答
反對 回復 2023-03-02
?
慕田峪7331174

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");

這會向下拉列表添加選項。提醒一下,您還必須將下拉列表添加到窗格中。


查看完整回答
反對 回復 2023-03-02
  • 3 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號