当前位置: 代码迷 >> J2SE >> 至于Graphics的提问
  详细解决方案

至于Graphics的提问

热度:128   发布时间:2016-04-24 12:48:13.0
关于Graphics的提问
Graphics g=new Panel().getGraphics();
对于这个式子,对于他的用法和用的地方不大清楚明白,哪位仁兄仁姐能帮忙给我解释一下吗?
public class HuaTu extends JFrame{
public HuaTu()
{
this.setBounds(100,100, 100, 100);
Container con=this.getContentPane();
con.add(new HuaBan2());
}
public static void main(String args[])
{
new HuaTu().show();
}
}
class HuaBan2 extends JPanel{
public HuaBan2()
{
Graphics g=this.getGraphics();
g.drawString("Ok", 10, 10);
}
}
提示信息: Exception in thread "main" java.lang.NullPointerException
at shujuku.HuaBan2.<init>(HuaTu.java:20)
at shujuku.HuaTu.<init>(HuaTu.java:9)
at shujuku.HuaTu.main(HuaTu.java:13)

------解决方案--------------------
Java code
public class HuaTu extends JFrame {    public HuaTu() {        this.setBounds(100, 100, 100, 100);        Container con = this.getContentPane();        con.add(new HuaBan2());    }    public static void main(String args[]) {        new HuaTu().show();    }}class HuaBan2 extends JPanel {    public HuaBan2() {//        Graphics g = this.getGraphics();//        g.drawString("Ok", 10, 10);    }    public void paint(Graphics g){        super.paint(g);//你去看看里面做了什么        g.drawString("Ok", 10, 10);    }}
------解决方案--------------------
Graphics g=new Panel().getGraphics(); 


只知道是获取画板o_O..
其余不懂..
------解决方案--------------------
graphics是java2d里面负责“画画”的对象,
从它的那些方法就可以看出这一点,
getGraphics的目的也就是取得描画这个控件的graphics,
用vc的话就是句柄handler的意思了
然后就可以直接用这个对象来画这个对象。
1楼的例子里面的paint方法参数和楼主例子里面的,
还有canvas
都是底层框架提供这个graphic的对象,然后我们可以用这个graphics来“画”

good luck
  相关解决方案