2017-02-04 1 views
0

의 null이며, 여기에 배경 이미지 그리기 할 몇 가지 코드 :backgroundImage의 내가 자바 프로그래밍 비교적 새로운 해요 대신 이미지

public class Board extends JPanel{ 
private static final long serialVersionUID = 4759318639631503071L; 
public String room = "menu"; 
public Image backgroundImage; 

public Image getBackgroundImage() throws IOException{ 
    if (room == "menu") { 
     backgroundImage = ImageIO.read(new File("assets/background_title.png")); 
    } 
    return backgroundImage; 
} 

@Override 
public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    g.drawImage(backgroundImage, 0, 0, this); 
} 
} 

내가에서 System.out.println을 사용 또는 backgroundImage가 null 것을 깨달았다를 , 내가 뭘 잘못 했니?

+0

다른 질문은, 어디에서 실행 내용에 관계 자산이다? – MadProgrammer

답변

0

당신은 문자열

사용하는 대신 if (room.equals("menu"))

을 비교하는 ==을 사용했다

자바에서
if (room == "menu") 
0

는 == 연산자를 검사하기 때문에,() 메소드를 등호를 사용하여 String 객체를 비교해야 두 여부 참조는 정확히 같은 대상을 가리 킵니다.

그래서 :

if(room.equals("menu")) { ... } 
+0

여전히 null을 반환합니다. 아마도 페인트 메서드에 문제가 있습니까? –

+0

그리고 이걸'getBackgroundImage() '라고 부릅니까? 'JPanel'이'paintComponent()'를 호출하기 전에 호출이 확실합니까? – Porcupine

관련 문제