0
JavaFXを使用して電子商取引アプリケーションで作業していますが、SQL Server 2014を使用していてデータベースからイメージを取得できませんでした。 forループを使用して、グリッドペインにデータベースのすべての値を追加しています。画像はグリッドペインの中央にあり、製品名と価格は下部に表示されていました。私は試してみるたびにjava.lang.NullPointerExceptionを取得します。誰でも私を助けてくれますか?javafxがSQL Serverデータベースからイメージを取得します
ファイル名pic.jpg
でファイルに画像データを書き込んでいる
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);
}
スタックトレースを含めるために質問を編集し、例外をスローしているコードの行を指定してください。 –
私は既にJava例外を修正しました。イメージをデータベースに挿入すると、エラーメッセージが消えてしまいました。依然としてデータベースから画像を取り出すことができない。 – ben
ここでは、画像を取得するために使用したコードを示します。 – ben