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

标签 java mysql eclipse javafx

我有一个 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/

相关文章:

java - 移动到相邻空间拾取硬币的二维阵列游戏

java - 索引越界异常: getting same row repeated several times

java - 覆盖 JTable 的 DefaultTableCellRenderer 以将 JTable 中的所有单元格居中

mysql - 检查 2 个日期之间的差异是否不超过 2 天

php - Mysql Group Yii Active Record 按日期/时间

java - 在 Android 中未收到位置更新

java - 我可以使用某些 python(或 Java)API 将文件夹复制到 dmg 文件中吗?

mysql - 根据位置和附加数据选择

eclipse停止弹出 "Web launch already running"

eclipse - 在基于 Eclipse 插件的环境中运行 Hibernate