2016-10-14 4 views
0

ich suchte, wie die Schriftgröße eines Textfeldes zu ändern, und ich diese Lösung auf Stackoverflow gefunden:Java - Libgdx: Wie ändert man die Schriftgröße des Textfelds?

TextField.TextFieldStyle textFieldStyle = skin.get(TextField.TextFieldStyle.class); 
textFieldStyle.font.scale(1.6f); 

Das Problem, das ich die textfieldstyle nicht verwenden, hier ist mein Code:

réponse = new TextField("", skin); 
réponse.setPosition(stage.getWidth()/2 - 445, stage.getHeight()/1 - 1600); 
réponse.setSize(900, 120); 
stage.addActor(réponse); 
réponse.setTextFieldListener(new TextField.TextFieldListener() { 
    @Override 
    public void keyTyped(TextField textField, char c) { 
     if(réponse.getText().equals("")){ 
      réponse.setText(""); 
     } else if(réponse.getText().equals("riviere")){ 
      game.setScreen(new Stage1(game)); 
      music.stop(); 
     } 
     else if(!réponse.getText().equals("riviere")){ 
      ecrireLeTexte = true; 
     } 
    } 
}); 

Vielleicht eine Lösung mit getStyle()?

+0

Ich habe die Antwort auf Ihre Frage hier gefunden, http://stackoverflow.com/questions/30185704/font-size-in-textfield-libgdx. – m3hrad

+0

Ja, das ist was ich gefunden habe, ich habe es dort oben gesagt, aber es löst mein Problem nicht. –

Antwort

0

Die Lösung, die Sie gepostet haben, und der Code, den Sie jetzt haben, sind fast gleich.

Sie erstellen ein TextField mit einem Skin. Sie können auch eine TextField mit einer TextFieldStyle erstellen. Anstatt eine brandneue TextFieldStyle zu erstellen, können Sie tun, wie gezeigt, und erhalten Sie die vorhandene von Ihrem Skin.

Ihr Code würde dann wie folgt aussehen:

TextField.TextFieldStyle textFieldStyle = skin.get(TextField.TextFieldStyle.class); 
textFieldStyle.font.scale(1.6f); 

réponse = new TextField("", textFieldStyle); 

Diese fast genau das, was hinter den Kulissen geschieht, wenn Sie ein TextField mit Skin erstellen. Hier ist der Konstruktor von TextField(String, Skin) von Libgdx Code:

public TextField (String text, Skin skin) { 
    this(text, skin.get(TextFieldStyle.class)); 
} 

Sie können sehen, dass es im Wesentlichen tut:

TextButtonStyle style = skin.get(TextFieldStyle.class); 
textField = new TextField(text, style); 

Und das ist das gleiche wie den neuen Code.

+0

textFieldStyle.font.scale(); funktioniert nicht, kann die Methode nicht lösen. .scale() –

+0

Meiner Erfahrung nach können Sie die Größe der Schriftarten nicht wirklich ändern, nachdem sie einmal geladen wurden. Warum machst du die Schriftgröße nicht einfach größer? – grimrader22

Verwandte Themen