程序设计中经常会碰到用组件来显示图片的情况, 可以显示图片的组件有很多,如awt包中的button,label,panel等都可以在其上面放置图片.图片又可分为两类,一类是放置于button等组件上的ImageIcon(图标),另一类是可以放置在panel等组件上的较大的图片Image。
从本地计算机中读取图片的方法也有很多,比如,利用ImageIcon来读取本地图片,还可以把读取到的ImageIcon转换为Image。还有一种获取Image的方法是利用Toolkit类。我个人较喜欢第二种方法,Toolkit.getDefaultToolkit().createImage("图片名");因为Toolkit类是直接与本地操作系统相联系的一个类,获取到的图片会更真实,更直接。
想要用JPanel来显示获取到的图片就需要重写JPanel类的paint(Graphics g)方法,可以重写一个类来extends Jpanel类,也可以在定义Jpanel类的实例时采用匿名类的写法来重载paint()方法。
示例一:
代码如下
classImagePanel extends JPanel{
Image image=Toolkit.getDefaultToolkit().createImage("test.jpg");
public void paint(Graphics g) {
g.drawImage(image,0,0,image.getWidth(null),image.getHeight(null),null);
}
}
示例二:
代码如下
Image image=Toolkit.getDefaultToolkit().createImage("test.jpg");
JPanel panel=new JPanel(){
public void paint(Graphics g){
g.drawImage(image,0,0,imagegetWidth(null),image.getHeight(null),null);
}
};