2016-03-08 70 views
2
import org.jsfml.window.*; 
import org.jsfml.graphics.*; 
import org.jsfml.internal.*; 
import org.jsfml.window.event.Event; 

public class Jsmql { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) throws InterruptedException, ContextActivationException { 
     // TODO code application logic here 
     VideoMode vm = new VideoMode(100, 100); 
     Window fen = new Window(vm, "aaa"); 
     while(fen.isOpen()) { 
      fen.display(); 
      Event event = fen.pollEvent(); 
      if (event.type == Event.Type.CLOSED) { 
       fen.close(); 
      } 
     } 
    } 

} 

創建JSML窗口時,我想用Java創建與JSML Java的窗口(http://pdinklag.de/jsfml/) 我有下面的異常laucnhing我的代碼時:在線程異常在Java中

異常「主」 java.lang.NullPointerException在 jsmql.Jsmql.main(Jsmql.java:29) /Users/me/Library/Caches/NetBeans/8.1/executor-snippets/run.xml:53: Java返回:1 BUILD FAILED (總時間:0秒)

我看了Java NullPointerException的意義,但我沒有成功解決我的問題。

+1

你確定你是運行這段代碼?錯誤消息顯示第29行,但您的代碼段只有24行。 – lifeisfoo

+0

是的,錯誤是在行'if(event.type == Event.Type.CLOSED)' –

回答

0

如果你看一下 Window.pollEvent() method的文檔,你可以看到,它說:

回報目前在事件堆棧頂部的事件,或者返回null如果沒有,則

所以你應該檢查event不爲空,訪問其type屬性之前:

if (event != null && event.type == Event.Type.CLOSED) { 
    fen.close(); 
}