J'ai quelques boutons radio dont le texte peut être très long. Existe-t-il un moyen facile d'envelopper les mots? Oui, en les enveloppant dans les étiquettes <html>
et en insérant des étiquettes <br>
, cela fonctionnerait-il, mais existe-t-il un moyen plus automatique d'accomplir cela? Je ne veux pas vraiment lancer mon propre typographe.Texte de bouton radio Word-wrap en Java?
Répondre
En les enveloppant dans les étiquettes <html>
et en s'assurant qu'ils reçoivent suffisamment d'espace vertical, cela devrait fonctionner. Pas besoin de casser les lignes vous-même.
Je ne pense pas qu'il existe des solutions parfaites pour cela. Autre que l'utilisation de balises <br>
, vous pouvez utiliser un JTextArea
et le faire ressembler à une étiquette. Définissez ensuite lineWrap
et wrapStyleWord
à true
.
Ensuite, vous perdez la fonctionnalité de cliquer sur les étiquettes pour sélectionner/désélectionner votre bouton radio, vous devrez donc ajouter un écouteur souris.
Le moyen le plus rapide et le plus sale consiste simplement à ajouter <html> au début du texte d'étiquette du bouton radio. Cela entraînera un début de ligne, mais vous devrez faire attention à ce texte s'il contient < caractères. Cela maintient également la fonctionnalité de cliquer sur le texte de l'étiquette étant un clic sur le bouton radio.
Voici un exemple pas cher et gai:
public class Test extends JFrame {
public static void main(String[] args) {
new Test();
}
private Test() {
Container c = getContentPane();
c.setLayout(new BorderLayout());
c.add(new JRadioButton("<html>I've got a very long text description that's going to wrap over very long lines because I stuck an <html> tag at the start of its label string.</html>"));
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(200,200);
setVisible(true);
}
}
Fonctionne très bien et est une solution courte. C'est sale et ça marcherait si vous mettez un
Pouvez-vous fournir un exemple de code? J'ai essayé cela avec pratiquement chaque mise en page et cela n'a pas fonctionné avec aucun d'entre eux. –