Я использую Swing для создания небольшой 2D-игры на Java. Я только пытаюсь отобразить изображение. Поскольку я не нахожусь в EDT, я использую SwingUtilities.invokeLater(), чтобы делать это. Когда я его использую, изображение не отображается (на самом деле оно отображается в течение нескольких миллисекунд и исчезает). Когда я не использую SwingUtilities.invokeLater(), изображение отображается правильно, но мне нужно использовать 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();
}
}
}
Любая идея ?
Спасибо.
frame.getGraphics().drawImage(i, 0, 0, null);
Есть проблема.. - person Andrew Thompson   schedule 15.04.2013