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