Topic: JPanel类的getGraphics方法使用问题

  Print this page

1.JPanel类的getGraphics方法使用问题 Copy to clipboard
Posted by: macroxmu
Posted on: 2005-05-15 19:07

为了通过调用JPanel中的函数实现在JPanel中已绘制的背景图形上绘制线条,
因为线条是根据外部条件绘制的,不可能写在paint函数中。
部分代码如下:
class pan extends JPanel{
Image pic;
public void paint(Graphics g){
pic=new ImageIcon("icons.jpg").getImage();//绘制背景图案。
g.drawImage(pic,0,0,this);
}
public void paintline(int ax,int ay,int bx,int by){//在背景上绘制线条
Graphics gr=this.getGraphics(); //取得JPanel的Graphics
~~~~~~~~~~~~~~~~~~~~下面抛出空指针异常
gr.setColor(Color.white); //绘制线条
gr.drawLine(ax,ay,bx,by);
}
}

我查了文档,JComponent 就已经实现了getGraphics方法。但是却无法返回Graphics对象?

是什么原因,还有没有其他的实现方法?

2.Re:JPanel类的getGraphics方法使用问题 [Re: macroxmu] Copy to clipboard
Posted by: longwang
Posted on: 2005-05-20 14:51

JPanel是轻量级组件,必须有重量级父容器,才能getGraphics。
将它Add入一个父容器在调用该方法。

另外为什么不用paint方法传入的Graphics?


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923