3
그래픽 컨텍스트를 올바르게 처리하는 방법 - try
및 finally
을 사용해야합니까? 간단한 예 :그래픽 컨텍스트를 올바르게 처리하는 방법 - 마침내 시도해야합니까? (Java 1.7)
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
try {
g2D.drawLine(0, 0, 10, 0);
} finally {
g2d.dispose();
}
}
편집
이것은 java.awt.Window의 클래스의 예입니다 : 내가 볼 것처럼
/**
* {@inheritDoc}
*
* @since 1.7
*/
@Override
public void paint(Graphics g) {
if (!isOpaque()) {
Graphics gg = g.create();
try {
if (gg instanceof Graphics2D) {
gg.setColor(getBackground());
((Graphics2D)gg).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC));
gg.fillRect(0, 0, getWidth(), getHeight());
}
} finally {
gg.dispose();
}
}
super.paint(g);
}
가 사용 생성자는 꽤 간단하지만 try
및 finally
여전히 종료됩니다. 그래서 저는 그것들을 사용하는 것이 좋은 습관이 될 것이라고 생각합니다.