因为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));
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));
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.*;按钮上加图片方法一样。
然后调用setIcon方法来调用图片我的Image是从数据库里面读出来的,是一个image 字段
JLabel(Icon image)
JLabel的这个构造方法
确认一下,你读出来的数据和你存进数据库中的数据顺序呀等等是否正常.
很有可能是这方面的问题.下面代码是一个例子.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);
}
}