2014-12-05 10 views
1

JFrame을 통해 배경 이미지를 페인팅 할 때 문제가있는 것 같습니다. 다른 모든 아이콘은 올바르게 그려 지지만 배경 이미지는 건너 뛴 것처럼 보입니다. 변수 backgroundImg는 ImageIcon (다른 대부분의 아이콘처럼 선언 됨)이며 다른 아이콘이 그 위에 그려지는 JFrame의 배경으로 설정되어야합니다. Graphics 함수가 Java로되어있어 여러 아이콘 위에 페인트하지 않을 수도 있지만 확실하지는 않습니다. 여기 코드는 다음과 같습니다자바 페인트 아이콘이 배경 이미지로 작동하지 않습니다.

private ImageIcon backgroundImg = new ImageIcon("image/back.PNG"); 
    private String name; 
    private long score=0; 
    private static final Dimension backgroundSz = new Dimension(1024,768); 
................................................... 
public GamePanel() 
{ 
setPreferredSize(backgroundSz); 
setBackground(Color.black); 
} 

public void paintComponent(Graphics g) 
{ 
    super.paintComponent(g); 

    this.backgroundImg.paintIcon(this, g, backgroundImg.getIconWidth(), 
      backgroundImg.getIconHeight()); 


} 

조금에게 더 문제를 설명하기 위해 : 배경 이미지는 스타 필드의 있어야하는데 그것은 주요 게임 패널을 통해 그려 질 예정이다. 그러나 결과는 매번 검정 배경입니다 (배경색으로 설정). 이미지 크기는 프레임 크기와 같습니다. 게임이 시작된 후에 다른 모든 이미지가 올바르게 그려지기 때문에 유일한 문제는 배경 그림입니다. 다른 이미지를 칠하는 대부분의 코드를 제거한 후에도 배경 이미지는 여전히로드되지 않습니다.

+4

는 [실행 가능한 예]를 제공하는 것을 고려 (https://stackoverflow.com/help/mcve) 당신을 설명하는 문제. 이것은 더 적은 혼란과 더 나은 응답을 가져올 것입니다. – MadProgrammer

+0

MadProgrammer : 제가 문제와 함께 게시 할 수있는 유일한 예는 창의 스크린 샷입니다. 더 도움이 되겠습니까? –

+0

mKorbel : 누락 된 paintIcon은 어디에 있습니까? –

답변

1

이제 paintIcon에는 너비/높이가 x, y 매개 변수가 없으므로 오류가있는 것으로 보입니다.

은 일반적으로 내가 다소 paintIcon 방법을 싫어하고 이미지를 저장하는 것 및 수행

@Override 
public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    g.drawImage(backgroundImg.getImage(), 0, 0, null); 
}