2013-04-15 1 views
1

작은 자바 2D 게임을 만들기 위해 스윙을 사용하고 있습니다. 나는 이미지 만 표시하려고합니다. 이후 내가 EDT에 아니에요 SwingUtilities.invokeLater() 물건을 할 사용하고 있습니다. 사용하면 이미지가 표시되지 않습니다 (사실 몇 밀리 초 동안 표시되고 사라집니다). SwingUtilities.invokeLater()를 사용하지 않으면 이미지가 올바르게 표시되지만 invokeLater()를 사용해야합니다.SwingUtilities.invokeLater() 한 프레임 동안 표시

public class Test { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    try { 
     SwingUtilities.invokeAndWait(new Runnable() { 

      @Override 
      public void run() { 
       final BreizhFrame frame = new BreizhFrame(); 
       File imgFile = new File("src/test/lvl1-800x450.jpg"); 
       System.out.println(String.valueOf(imgFile.exists())); 
       System.out.println(SwingUtilities.isEventDispatchThread()); 
       Image i; 
       try { 
        i = ImageIO.read(imgFile); 
        frame.getGraphics().drawImage(i, 0, 0, null); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } catch (InvocationTargetException | InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

}

어떤 생각 :

여기 내 기본 코드입니까?

감사합니다.

+1

frame.getGraphics '()의 drawImage (I, 0, 0, NULL의).'문제가있다 .. –

+0

메인 외측이 "최종 BreizhFrame 프레임"을 선언하고 시도. – Kishore

+3

[Custom Painting] (http://docs.oracle.com/javase/tutorial/uiswing/painting/)을 통해 약간의 시간을 보냅니다. – MadProgrammer

답변

3

Java로하는 방법이 아닙니다. 예, 이미지를 그리는 중입니다.하지만 잠시 후 컨트롤이 무효화되고 이미지없이 다시 그려집니다.

This tutorial should help you

+0

감사합니다! 그것은 내가 필요한 것입니다;) – Pcriulan

관련 문제