Caros, boa noite.
Sou programador PHP, domino completamente, mas estou tentando desenvolver um jogo em Java. Sei fazer uma coisa ou outra em Java mas agora estou tendo dificuldades e gostaria de ajuda.
Estou utilizando a biblioteca Slick2d, e criando um StateBasedGame. Em um de meus States, que seria a tela inicial (meu “menu”), eu quero colocar 2 inputs para o usuário preencher login e senha.
Segue o código do meu state:
[code]package GameClient;
import java.awt.Font;
import org.newdawn.slick.;
import org.newdawn.slick.state.;
import org.newdawn.slick.UnicodeFont;
import org.newdawn.slick.gui.*;
public class MenuInicial extends BasicGameState {
UnicodeFont uFont;
TextField login;
public MenuInicial(){
}
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException{
Font fontePadrao = new Font("Arial", Font.PLAIN, 13);
uFont = new UnicodeFont(fontePadrao);
// Login box
login = new TextField(gc , uFont, 170 , 200 , 200 , 35, new ComponentListener() {
public void componentActivated(AbstractComponent source) {
System.out.println("DEBUG: "+login.getText());
login.setFocus(true);
}
});
}
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{
Image background = new Image("res/menuBackground.jpg");
g.drawImage(background, 0, 0);
// Borda
g.setColor(new Color(142, 159, 167));
g.setLineWidth(4);
g.drawRect(0, 0, GameClient.CLIENT_WIDTH-1, GameClient.CLIENT_HEIGHT-1);
// Logo
Image logo = new Image("res/logo.png");
g.drawImage(logo, 165, 70);
login.setText("abc");
login.render(gc, g);
}
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException{
}
public int getID(){
return 1;
}
}
[/code]
O problema é que a minha TextField é renderizada mas “em branco”, e não consigo digitar nada nela. Mesmo eu definindo o text com o setText(“bla”); nada aparece.
Porém, se eu for até o input e apertar Enter no meu console eu consigo ver o debug do ComponentListener.
Procurei MUITO na internet, segui vários exemplos e aparentemente o código deveria funcionar…
Alguem saberia me auxiliar?
PS: Segue screenshot de como está:
http://s14.postimage.org/d86bv2d6p/screenshoterror.png
Grato desde já.