图像注册表用来管理图像,使用方便,使程序运行更快速,为了充分发挥它的作用,要把所有图片都管理起来才好,因此图像注册表的实例要尽早调用。在SWT的Shell中,只要把new ImageRegistry()语句放在main方法中Display display=Display.getDefault();下面就可以了,但是JFace的ApplicationWindow窗体框架中,main方法没有这条语句,Display要在窗体open方法中才能产生,但是我们也不能重写这个open方法啊!那么图像注册表怎么生成合适呢,它是必须依赖于Display的,如果位置不合适,就会产生空指针异常,其实很简单:
在main方法中,实例化ApplicationWindow之前,手动添加一条语句,提前生成Display即可:
new Display();
这条语句之后,图像注册表就随便用了!