레이블과 텍스트 필드를 표시해야하는 매우 기본적인 프로그램이 있습니다. 텍스트를 표시 할 수 있습니다. 텍스트 필드, 나는 오류없이 만들 수 있지만 내가 무대에 추가하고 프로그램을 실행할 때이 오류가 :이해할 수없는 NullPointerException
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.badlogic.gdx.scenes.scene2d.ui.TextField.draw(TextField.java:301)
at com.badlogic.gdx.scenes.scene2d.Group.drawChildren(Group.java:111)
at com.badlogic.gdx.scenes.scene2d.Group.draw(Group.java:58)
at com.badlogic.gdx.scenes.scene2d.Stage.draw(Stage.java:128)
at com.pace.converter.MainMenuScreen.render(MainMenuScreen.java:52)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.pace.converter.MyGdxGame.render(MyGdxGame.java:21)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:207)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
내가 코드 블록에 줄 번호를 넣어하는 방법을 알고하지 않는 한을
MainMenuScreen.java : 내 의견에, 여기 줄은 오류로 지적된다 (52)가
stage.draw();
MyGdxGame.java : 21
super.render();
입니다
스테이지에 추가하기 전에 TextField를 만들 때 왜이 NullPointerException이 발생하는지 이해할 수 없습니다.
주요 활동 :
이public class MyGdxGame extends Game {
SpriteBatch batch;
AssetManager assets;
@Override
public void create() {
batch = new SpriteBatch();
assets = new AssetManager();
this.setScreen(new LoadingScreen(this));
}
@Override
public void render() {
super.render();
}
public void dispose() {
batch.dispose();
}
}
메인 메뉴 화면 : 그리고 여기 내 전체 코드입니다
public MainMenuScreen(final MyGdxGame gam) {
game = gam;
camera = new OrthographicCamera();
camera.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
skin = new Skin(Gdx.files.internal("skin.json"));
stage = new Stage();
labelStyle = new LabelStyle(game.assets.get("font1.ttf", BitmapFont.class), Color.WHITE);
labelTest = new Label("Test", labelStyle);
textFieldTest = new TextField("Test", skin);
stage.addActor(labelTest);
stage.addActor(textFieldTest);
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.281f, 0.602f, 0.844f, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
game.batch.setProjectionMatrix(camera.combined);
stage.act();
stage.draw();
}
문제를 디버그하지 않거나 문제가되는 라이브러리 파일의 sourcejar 또는 디스 어셈블 된 코드를 가져 오지 않는 이유는 무엇입니까? 사용하고있는 libgdx의 버전을 알려주지 않으므로 줄 번호를 실제 코드와 연관시키는 것은 불가능합니다. – cfrick