2013-11-28 3 views
0

Это очень простая проблема для некоторых людей, которых я предполагаю, и я просто не вижу ее. (Я очень любитель на Java).Почему мой космический корабль не появляется?

Это какой-то тестовый код, который я написал, чтобы попытаться устранить неполадку, почему он не работает в моем другом проекте. По какой-то причине мой rocketshipStationary.png просто не появится при загрузке Java-апплета.

Это мой код:

public class Test extends Applet { 

    public Image offScreen; 
    public Graphics d; 
    public BufferedImage rocketship; 



    public void init() { 
     setSize(854, 480); 
     offScreen = createImage(854,480); 
     d = offScreen.getGraphics(); 

     try { 
      rocketship = ImageIO.read(new File("rocketshipStationary.png")); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public void paint(Graphics g) { 
     d.clearRect(0, 0, 854, 480); 
     d.drawImage(rocketship, 100, 100, this); 
     d.drawImage(offScreen, 0, 0, this); 
    } 
} 
+0

Что происходит? Получаете ли вы какие-либо сообщения на консоли? Вы не разместили код для 'createImage()'; это краска над «ракеткой» в вашем методе 'paint()'? – chrylis

+1

1) Зачем нужен апплет? Если это связано со спецификацией. учителем, пожалуйста, обратитесь к [Почему учителя CS должны прекратить преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/). 2) Почему AWT, а не Swing? См. Этот ответ на [Swing extras over AWT] (http://stackoverflow.com/a/6255978/418556) по многим причинам, чтобы отказаться от использования компонентов AWT. Если вам необходимо поддерживать более старые API на основе AWT, см. [Смешивание тяжеловесных и легких компонентов] (http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html). –

+0

Вы проверили, что ваш электронный палец работает? – paxdiablo

ответ

2

Вы должны получить хороший большой след стека, который описывает то, что происходит. Суть в том, что «апплеты и файлы не играют хорошо вместе».

Вместо этого, либо установить URL на изображение и использовать его для ImageIO, или альтернативно использовать URL в методе Applet.getImage(URL).

Смежные вопросы