캔버스에 이미지를 추가 한 다음 해당 캔버스를 패널에 표시했습니다. 그러나 창을 최소화 한 다음 최대화하면 이미지가 패널에서 사라집니다. 이 문제를 어떻게 해결할 수 있습니까? 다음은 코드입니다.이미지가 최소화 된 창에서 사라짐
public class CloseCanvas extends Canvas{
private static final long serialVersionUID = 2L;
@Override
public void paint(Graphics g) {
setSize(new Dimension(30,22));
BufferedImage image = null;
try {
image = ImageIO.read(new File("res/close.png"));
} catch (IOException ex) {
ex.printStackTrace();
}
g.drawImage(image, 0, 0, null);
}
}
이것은 AWT 구성 요소가 무거울 때 문제가 될 수 있습니다. 대신 JPanel을 서브 클래스로 만들고 패널에 직접 페인트 칠하지 않으시겠습니까? – Thomas
move setSize (새 치수 (30,22)); 페인트 방법의 외부에서 API를 읽는 방법은 다른 방법이 있기 때문에 g.drawImage()에 대한 크기를 설정하는 방법 – mKorbel
많은 감사. 페인트 메서드 밖으로 setSize를 이동하면 문제가 해결됩니다. – tiger