簡體   English   中英

創建動態節點列表,以后如何訪問它們?

[英]Creating a dynamic node list, how do I access them later?

這是我的代碼:

for (int i=1; i<= columnCount; i++) {
    HBox h = new HBox();
    Label column = new Label(rsmd.getColumnName(i));
    TextField entry = new TextField();
    h.getChildren().addAll(column, entry);
    dialogVbox.getChildren().add(h);
}

我需要在for循環中運行它,因為創建的行數取決於從數據庫表中檢索到的列。 此后,當用戶單擊按鈕時,我需要檢索他們在“輸入”文本字段中輸入的新值。 有什么辦法嗎? 我假設我可能必須在循環外創建一些動態列表並填充它,但是我不確定該怎么做。 任何幫助,將不勝感激!

為什么不使用直接在相應TextField的編輯操作上填充的映射:

Map<String, String> newValues = new HashMap<>();

for (int i=1; i<= columnCount; i++) {
    final String columnName = rsmd.getColumnName(i); 
    HBox h = new HBox();
    Label column = new Label(columnName);
    TextField entry = new TextField();
    entry.textProperty().addListener((e,o,n) -> newValues.put(columnName, n));
    h.getChildren().addAll(column, entry);
    dialogVbox.getChildren().add(h);
}

然后插入數據庫

String columns = newValues.entrySet().stream().map( n -> n.getKey() ).collect( Collectors.joining( "," ) );
String values = newValues.entrySet().stream().map( n -> n.getValue() ).collect( Collectors.joining( "," ) );

String sql = "insert into table ( " + columns + ") values (" + values + ")";
// run sql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM