GuiTextArea



  • Salut tout monde 🙂

    J'aimerai afficher une text-box d'une certaine taille et que le texte soit automatiquement mis a la ligne lorsque celle-ci dépasse le cadre. Et aussi que les \n puissent faire un retour chariot.
    Ce type de composant existe-il ?
    Merci 🙂



  • Salut, ce composant n'existe pas, va falloir que tu crées ton propre GuiTextArea. (Pour le \n je ne sais pas mais pour le retour à la ligne oui)

    😉



  • Merci pour ta réponse, par contre je n'ai pas compris ce que tu veux dire par " (Pour le \n je ne sais pas mais pour le retour à la ligne oui)".
    Je pense utiliser l'API Nifty. Quelqu'un a t'il déjà utilisé cette API ?


  • Administrateurs

    public static final Splitter newLineSplitter = Splitter.on("\\n");
    
    […]
    
    List <string>desc = newLineSplitter.splitToList(I18n.format(kit.getDescription()));
    for(int i = 0; i < desc.size(); i++)
    {
    this.drawCenteredString(mc.fontRenderer, desc.get(i), gui.width / 2, 160 + 12 * i, 456645);
    }
    

    C'est ce qu'on utilise pour nanotech hunger games.
    Ça affiche plusieurs lignes en fonction des \n dans les fichiers de lang.

    Pour adapter le texte à la taille d'un gui, je sais pas.</string>


  • Modérateurs

    Pour couper quand ça dépasse, mon approche serait de récupérer la largeur de la zone et la largeur d'un caractère.
    Tu divises pour savoir le nombre de caractères par ligne et ensuite, il faudrait découper ton texte avec un algorithme tel que:

    • Tu découpes ton texte par mots
    • Pour chaque mot, tu vérifie sa longueur en caractères et tu l'ajoutes à une variable l.
    • Si l dépasse la limite, tu insères un \n juste avant le mot.
    • Sinon, tu passes au mot d'après.