2011-01-28 25 views
3

JFrameのデータベースから取得した画像を表示する際に問題が発生しています。ここでは、これを解決するために私を助けてください、私が使用すること、 .........JFrameでmysqlから取得した画像を表示する方法

 try 
       { 
       Class.forName("com.mysql.jdbc.Driver"); 
      Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/studio","root",""); 
      Statement st=con.createStatement(); 
      ResultSet rs = st.executeQuery("select image from photo_instn where cust_id='2'") ; 
      while(rs.next()) 
      { 
      byte[] imagedata = rs.getBytes("image") ; 
      Image img = Toolkit.getDefaultToolkit().createImage(imagedata); 
      ImageIcon icon =new ImageIcon(img); 
      JLabel lPhoto = new JLabel(icon) ; 
      setLayout(null);        // BYTES TO IMAGE                  
      System.out.println("Inside"); 
      System.out.println(lPhoto); 
      this.add(lPhoto) ; 
      lPhoto.setBounds(200,20,300,400); 
    } 
} 

このコードは、フレーム... に表示されていない何problem.butイメージを持っていないです問題....

+0

コードのフォーマットを使用してください。 – Mudassir

答えて

1

コードにthis.setVisible(true)を追加してみてください

this.add(lPhoto)の後に、あなたは、あなたのコード内で行ったように

0
InputStream in = new ByteArrayInputStream(imageInByte); 
BufferedImage bImageFromConvert = ImageIO.read(in); 

2を参照のJFrame

boolean Graphics.drawImage(Image img, 
          int x, int y, 
          ImageObserver observer); 

にそのイメージを表現DBからbyte[]を取得

0

このコードの使い方のコンテキストはわかりません。

一般的にあなたが使用する必要がGUIからコンポーネントを削除/追加した後:

panel.revalidate(); 
panel.repaint(); 
1
import java.awt.*; 
import java.sql.*; 

import javax.swing.*; 

public class DisplayImage extends JFrame { 

Connection connection = null; 
PreparedStatement statement = null; 

ResultSet result; 

public DisplayImage() { 
    super("Image Display"); 
    setSize(600, 600); 
    connection = getConnection(); 
    try { // table name:image and second image is field name 
     statement = connection 
       .prepareStatement("select image from image where id = 1"); 
     result = statement.executeQuery(); 

     byte[] image = null; 
     while (result.next()) { 
      image = result.getBytes("image"); 

     } 
     Image img = Toolkit.getDefaultToolkit().createImage(image); 
     ImageIcon icon = new ImageIcon(img); 
     JLabel lPhoto = new JLabel(); 
     lPhoto.setIcon(icon); 
     add(lPhoto); 

    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    setVisible(true); 
} 

public Connection getConnection() { 
    Connection connection = null; 

    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     connection = DriverManager.getConnection(
       // user name:root and password:blank 
       "jdbc:mysql://localhost:3306/insertRetriveImages", "root", 
       ""); 

    } catch (Exception e) { 
     System.out.println("Error Occured While Getting the Connection: - " 
       + e); 
    } 
    return connection; 
} 

public static void main(String[] args) { 
    new DisplayImage(); 
} 
} 
1
Class.forName("com.mysql.jdbc.Driver"); 
      Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/vodafonecare","root","root"); 
      PreparedStatement ps=con.prepareStatement("select * from photo"); 
      ResultSet rs=ps.executeQuery(); 
      if(rs.next()){ 
       rs.next(); 
       rs.next(); 
      Blob b=rs.getBlob(3); 
      byte bt[]=b.getBytes(1,(int)b.length()); 
      Image img = Toolkit.getDefaultToolkit().createImage(bt); 
      photoL.setIcon(new ImageIcon(img)); 
関連する問題