经常要对一个Graphics设置颜色,然后绘图写字。这工作常见,也有一个麻烦的地方:完成之后,你要恢复原来的颜色。于是代码就类似:
Color oldColor = g2d.getColor();
g2d.setColor(newColor)
//drawLine/fillRect/drawChar
g2d.setColor(oldColor);
一次两次还好,次数多了就很讨厌。怎么办?能不能省事?于是吾设计了如下代码:
g2d.pushColor(newColor)
//drawLine/fillRect/drawChar
g2d.popColor();
这样代码是不是简单了好多?为了实现这个功能,在Graphics中维护一个栈即可。