NPE可能来自这里:
Graphics ga=jf.getGraphics();
根据文档:
为此组件创建图形上下文。如果此组件当前不可显示,则此方法将返回null。
1)不要将
Component#getGraphics其用作坏习惯/不能持久使用,
null除非组件可见,否则它将返回。
2)相反,使用
JPanel和覆盖
paintComponent(Graphicsg)不要忘记
super.paintComponent(g);在覆盖中作为第一个呼叫进行调用
paintComponent。
3)覆盖
getPreferredSize()并返回正确的
Dimensions以适合要绘制的图像。
4)添加
JPanel到框架中以使图像自然可见。
另外,您也可以使用
JLabel,它只需要一个
setIcon(..)调用即可,并将其添加到中
Jframe。



