绘图问题
绘图的那些对象,只能在paint()里用吗?在别的方法里可以定义并使用那些对象吗?
----------------解决方案--------------------------------------------------------
不可以,因为Graphics的对象是系统生成的
不过你也可以把paint里面的Graphics对象传给你要用它的方法里面,你就可以用了
----------------解决方案--------------------------------------------------------
版主好象说错了吧?~
Graphics不一定要在paint()里面用吧
因为Graphics是个抽象类,所以只要用它的一个方法getGraphics返回一个Graphics对象就可以用了`
----------------解决方案--------------------------------------------------------
有道理,得到了任何的对象的Graphics引用后就可以用了
但是要更新还是要调用repaint()方法
要不就设置为setIgnoreRepaint(true),自己画了就像
----------------解决方案--------------------------------------------------------
有道理,得到了任何的对象的Graphics引用后就可以用了
但是要更新还是要调用repaint()方法
要不就设置为setIgnoreRepaint(true),自己画了就像
----------------解决方案--------------------------------------------------------
绘图问题
绘图的那些对象,只能在paint()里用吗?在别的方法里可以定义并使用那些对象吗?
paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
g2d.fill( new Ellipse2D.Double(25,25,123,58) );
}
----------------解决方案--------------------------------------------------------
这不是一样吗?
paintComponent,paintComponents,paintChildren,paintBorder都是paint方法的变体,都是系统调用的
----------------解决方案--------------------------------------------------------
我在楼上就已经说了`
只要用getGraphics获得一个Graphics的一个对象就可以在其他方法中绘制了 ` 不一定要在paint方法中``
你可以去查阅API文档 英文的不懂的话就去看中文的 最好是看英文的`。
记住一句话,书对于一个程序员来说是累赘,帮助文档才是程序员的“爹”.
----------------解决方案--------------------------------------------------------
如果在方法paintComponent中绘图,必须注意以下一些问题:paintComponent(Graphics g)
当组件不透明时,paintComponent方法的绘制操作之前会清除背景颜色 ;该方法体的第一条语句应该总是调用超类的super.paintComponent( g),否则不能正确的显示该组件!
如果在执行完其他的绘制语句之后调用超类的paintComponent方法,则会擦除这些语句 的绘制的效果!
----------------解决方案--------------------------------------------------------