gpt4 book ai didi

java - JavaFX 中的 ListView 以及来自 SQL 的数据

转载 作者:行者123 更新时间:2023-11-29 07:26:19 26 4
gpt4 key购买 nike

我有一个 FXML 文件,上面是 ListView,旁边是 TextFields。如何将 ListView 上表中的 ID 与表中的其余记录同步?

例如,当我在 ListView 上单击 ID“1”时,数据库中的 NAME 和 LASTNAME(主键 ID 为“1”的其余记录)将出现在 TextField1 和 TextField2 中)

@Override
public void initialize(URL location, ResourceBundle resources) {

db.getConnect();
con = db.getConnect();

try {


pst1 = con.prepareStatement("SELECT idpatient FROM patient");
rs1 = pst1.executeQuery();

while(rs1.next())
{
ObservableList<String> ids = FXCollections.observableArrayList(rs1.getString("idpatient"));
patientList.setItems(ids);
}

此代码仅显示“idPatent”列的最后一行,但我想显示整列...我该怎么做?

最佳答案

您正在调用patientList.setItems(ids)对于 SELECT 返回的每一行,因此每一行都会丢弃前一行的结果。

您需要累积一个列表中各行的数据,然后调用 patientList.setItems(ids)结束后while(rs1.next())循环。

也许是这样的:

List<String> results = new ArrayList<>();

while(rs1.next())
{
results.add(rs1.getString("idpatient"));
}

ObservableList<String> ids = FXCollections.observableArrayList(results);
patientList.setItems(ids);

关于java - JavaFX 中的 ListView 以及来自 SQL 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34408281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com