日期:2014-05-20  浏览次数:20592 次

绘制图形问题
每次我想要在Swing中绘制图形的时候,我都要继承JComponent类,然后覆写这个方法
	public void paintComponent(Graphics g){
Graphics2D g2=(Graphics2D) g;

Core JAVA写道
引用
paintCompinent方法会自动地获得一个Graphics2D的对象,我们只需要进行一次类型转化就可以了

但是我在API文档中找不到类似的话,JDK给的源代码中也找不到哪里实现了Graphics2D的方法(Graphics2D是一个抽象类)
请问:Graphics里面的抽象方法在哪里实现。。还有你们是怎么看API文档的
求点播。。

------解决方案--------------------
看java.awt.Graphics java.awt.Graphics2D 的文档,具体的实现是 sun.java2d.SunGraphics2D 类。
------解决方案--------------------
另外,

paintComponent 方法在 JComponent 里定义的可见性是 protected,而不是 public,所以没有必要非得写 public

第一句最好调用 super.paintComponent(g); 
这一句就可以让你的控件的 setOpaque, getOpaque, setBackground, getBackground 起作用。

再就是强转那一句最好加 @SuppressWarnings("unchecked")