2017-01-31 5 views
0

データベースから取得したテーブルから画像を選択しようとしていて、ラベルにアイコンとして表示しています。 私はあなたが最初のBufferedImageに、その後のInputStreamにブロブを変換し、必要があるJava.lang.classcastexception blobをbufferedImage変数に変換しようとしています

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    try 
    { 
     pr=con.prepareStatement("SELECT `sender id`, `image`, `status` FROM `transfer` WHERE `receiver_id`=?"); 
     pr.setString(1,jTextField3.getText()); 
     rs=pr.executeQuery(); 
     jTable1.setModel(DbUtils.resultSetToTableModel(rs)); 

    } 
    catch(Exception e) 
    { 
     JOptionPane.showMessageDialog(this, e); 
    } 
}           

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {          
try 
{ 
int index=jTable1.getSelectedRow(); 
TableModel model=jTable1.getModel(); 
**BufferedImage ima=(BufferedImage) model.getValueAt(index,1);** 
JLabel l=new JLabel(new ImageIcon(ima)); 
imagePane.getViewport().add(l); 

} 
catch(Exception e) 
{ 
    JOptionPane.showMessageDialog(this, e); 
} 

}

答えて

0

...それが困難なBufferedImageオブジェクトにgetValueAt()メソッドによって返されたオブジェクトを変換することが判明:私が試した

TableModel model=jTable1.getModel(); 
Blob myBlob = model.getValueAt(index, 1); 
InputStream myIS = myBlob.getBinaryStream(); 
BufferedImage myImage = ImageIO.read(myIS); 
+0

この前に。 getValueAt()メソッドがオブジェクトコンパイラを返すので、キャスト(Blobへのオブジェクト)を実行します。しかし、その後、私はclassCastExceptionを得る – mrugesh

+0

しかし、BlobにObjectをキャストするときにクラスキャスト例外を取得するか、BlobをBufferedImageにタイトルが示すようにしますか?試しにあなたのコードをすべて貼り付けることができますか? –

+0

私の画像はデータベースに保存されています。データベースから画像を取得し、JTbaleに表示します。ユーザーが行をクリックすると、選択したイメージが画面に表示されます。私はclassCast Exceptionを取得しているところで、BufferedImageに選択した画像を保存して、さらに処理しています。 – mrugesh

関連する問題