我已经从数据库中获取数据,但是我不知道如何实现hbox内容。
这是来自数据库的数据和来自System.out.println(child);
的结果
ImageView[id=loopImage, styleClass=image-view]
Label[id=loopLabelKodeB, styleClass=label]'CDG'
Label[id=loopLabelNamaB, styleClass=label]'Bandar Udara Paris-Charles de Gaulle '
Label[id=loopLabelKotaB, styleClass=label]'Paris (France)'
ImageView[id=loopImage, styleClass=image-view]
Label[id=loopLabelKodeB, styleClass=label]'DPS'
Label[id=loopLabelNamaB, styleClass=label]'Bandar Udara Internasional Ngurah Rai '
Label[id=loopLabelKotaB, styleClass=label]'Bali (Indonesia)'
这只是我数据库中数据的一小部分
Hbox contentLoop
并且Hbox的父级是我尚未输入的Vbox pnlLoop
我希望此数据循环到hbox中
String sql = "select * from bandara";
pst= con.conn.prepareStatement(sql);
con.rs = pst.executeQuery();
while(con.rs.next()){
String kode_bandara = con.rs.getString("kode_bandara");
String nama_bandara = con.rs.getString("nama_bandara");
String kota = con.rs.getString("kota");
for(Node child : contentLoop.getChildren()){
//this child already grab the data from database
System.out.println(child);
//i dont know what to do after this
//this program just display one last row in my database
loopLabelKodeB.setText(kode_bandara);
loopLabelNamaB.setText(nama_bandara);
loopLabelKotaB.setText(kota);
try (InputStream is = con.rs.getBinaryStream("image"); OutputStream os = new FileOutputStream(new File("photo.jpg"))) {
byte[] content = new byte[10000000];
int size = 0;
while((size = is.read(content)) != -1){
os.write(content,0,size);
}
}
image = new Image("file:photo.jpg", 1080,640, true, true);
loopImage.setImage(image);
loopImage.setPreserveRatio(true);
}
System.out.println();
}
}catch (FileNotFoundException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException | SQLException ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
}
}
如果我输入了上级pnlLoop.getChildren().addAll(child);
程序,则会出错