因为swing中没有图片孔件,现在只能通过设置jlabel jbutton 的icon来显示,例如显示一个人员的照片,但是下面的显示不出来,in不为空,bb里面已经读进去了,就是显示不出来图片
InputStream in = masterDataSet.getInputStream("PORTRAIT"); byte[] bb = new byte[1024 * 1000];
try {
in.read(bb);
} catch (IOException e) {
e.printStackTrace();
}
ImageIcon imageIcon = new ImageIcon(bb);
Image image = imageIcon.getImage();
Image tempImage = image
.getScaledInstance(100, 100, Image.SCALE_DEFAULT); label.setIcon(new ImageIcon(tempImage));

解决方案 »

  1.   

    getContentPane().setLayout(null);
    jLabel1.setBounds(new Rectangle(12, 36, 313, 224));jLabel1.setIcon(new ImageIcon("image/Sunset.jpg"));//这一步是关键,在工程中建一个                         image的文件夹,用来存放图片,
                                                                 然后调用setIcon方法来调用图片        this.getContentPane().add(jLabel1);
    需要导入的包有:import javax.swing.*;
          import java.awt.*;按钮上加图片方法一样。
      

  2.   

    jLabel1.setIcon(new   ImageIcon("image/Sunset.jpg"));//这一步是关键,在工程中建一个                                                 image的文件夹,用来存放图片, 
                                                                                                                              然后调用setIcon方法来调用图片我的Image是从数据库里面读出来的,是一个image 字段
      

  3.   

    用byte数组构造好了ImageIcon对象之后就直接用于
    JLabel(Icon image)
    JLabel的这个构造方法
      

  4.   


    确认一下,你读出来的数据和你存进数据库中的数据顺序呀等等是否正常.
    很有可能是这方面的问题.下面代码是一个例子.public class TJableTest{    public static void main(String... args) {
        
         byte[] imageData = {
         71,73,70,56,57,
         97,15,0,15,0,
         (byte)128,0,0,(byte)255,(byte)255,
         (byte)255,0,0,0,44,
         0,0,0,0,15,
         0,15,0,0,2,
         33,(byte)132,127,(byte)161,(byte)200,
         (byte)185,(byte)205,84,(byte)128,(byte)241,
         81,35,(byte)175,(byte)155,26,
         (byte)228,(byte)254,105,33,102,
         121,(byte)165,(byte)201,(byte)145,(byte)169,
         (byte)154,(byte)142,(byte)172,116,(byte)162,
         (byte)240,90,(byte)197,5,0,59
         ,0,0,0,0,0,0,0,0,0,0,0,0,0,0
         };
        
            JFrame jframe = new JFrame();
            jframe.setSize(100,100);
            jframe.add(new JLabel(new ImageIcon(imageData)));
            jframe.setLocationRelativeTo(null);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jframe.setVisible(true);
        }  
     }