Ich arbeite an einer E-Commerce-Anwendung mit JavaFX, ich benutze SQL Server 2014 und ich konnte Bild aus der Datenbank nicht abrufen. Ich verwende eine for-Schleife, um alle Werte der Datenbank in einem Rasterbereich hinzuzufügen. Das Bild sollte sich in der Mitte des Rasterbereichs befinden, wobei der Produktname und der Preis unten angezeigt werden. Ich bekomme jedes Mal eine java.lang.NullPointerException, wenn ich es ausprobiert habe. Könnte mir bitte jemand helfen?javafx Bild von SQL-Server-Datenbank abrufen
BorderPane background[]= new BorderPane[13];
Label productName[]= new Label[13];
Label priceLable[]= new Label[13];
Image image;
ImageView imageView;
for (int i = 0; i<=12;i++){
background[i]=new BorderPane();
background[i].setStyle("-fx-background-color: rgb(216, 216, 216)");
background[i].setPrefHeight(300);
background[i].setPrefWidth(250);
try {
String query = "select pname,price,manufacturer,pimg from Adulis_product where pid=?";
pst = con.prepareStatement(query);
pst.setInt(1, adp.getProduct_id());
rs = pst.executeQuery();
while (rs.next()) {
productName[i]=new Label(rs.getString("pname")+" - "+rs.getString("manufacturer"));
productName[i].setStyle("-fx-text-fill: #282828");
productName[i].setFont(Font.font(" sans-serif", FontWeight.EXTRA_BOLD,14));
priceLable[i]= new Label(rs.getString("price"));
priceLable[i].setStyle("-fx-text-fill: #1da288");
priceLable[i].setFont(Font.font(" sans-serif", FontWeight.EXTRA_BOLD,15));
int finalI2 = i;
InputStream is = rs.getBinaryStream("pimg");
OutputStream os= new FileOutputStream(new File("pic.jpg"));
byte[] content= new byte[1024];
int size=0;
while((size = is.read(content))!=-1){
os.write(content, 0,size);
}
os.close();
is.close();
image = new Image("file:pic"+i+".jpg", 250,300,false,true);
imageView = new ImageView(image);
imageView.setFitHeight(300);
imageView.setFitWidth(250);
VBox prceNmanufactue= new VBox(10);
prceNmanufactue.getChildren().addAll(productName[i],priceLable[i]);
prceNmanufactue.setPadding(new Insets(0,0,0,5));
Image newp= new Image(getClass().getResourceAsStream("New_30px.png"));
ImageView newimv= new ImageView(newp);
background[i].setTop(newimv);
VBox borderElements= new VBox(5);
borderElements.getChildren().addAll(prceNmanufactue,addtocart[i]);
background[i].setBottom(borderElements);
}
} catch (Exception e1) {
System.out.println(e1);
}
Bitte bearbeiten Sie die Frage, um den Stack-Trace einzuschließen, und geben Sie an, welche Zeile im Code die Ausnahme auslöst. –
Ich habe bereits die Java-Ausnahme behoben. Die Fehlermeldung wurde gelöscht, nachdem ich die Bilder in die Datenbank eingefügt habe. aber immer noch nicht in der Lage, die Bilder von der Datenbank abzurufen. – ben
Hier ist der Code, den ich verwendet habe, um die Bilder abzurufen – ben