调用此方法打印指定 graphics
的组件。此方法将导致对 printcomponent
、printborder
和 printchildren
的调用。如果目的是定制打印外观的方式,建议重写前面提及的方法之一,而不是此方法。但是,如果想在调用超类行为之前准备好状态,则重写此方法很有用。例如,如果想在打印前更改组件的背景颜色,则可以执行以下操作:
public void print(graphics g) {
color orig = getbackground();
setbackground(color.white);
// wrap in try/finally so that we always restore the state
try {
super.print(g);
} finally {
setbackground(orig);
}
}
另外,对于将打印委托给其他对象的组件,在绘制期间就可以查询组件是否在打印操作的中间。ispaintingforprint
方法提供了这种功能并且此方法将改变其返回值:在即将呈现前改为 true
,在呈现后立即改为 false
。随着每一次更改,在此组件上都会触发一个名为 "paintingforprint"
的属性更改事件。
此方法设置组件的状态,使得双缓冲无法使用:绘制将直接在传入的 graphics
上完成。
- 覆盖:
- 类
container
中的 print
- 参数:
g
- 在其中进行绘制的 graphics
上下文- 另请参见:
printcomponent(java.awt.graphics)
,
printborder(java.awt.graphics)
,
printchildren(java.awt.graphics)
,
ispaintingforprint()