2009-06-04 7 views
4

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

0

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.

+0

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. –

2

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.

5

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 &lt;html&gt; tag at the start of its label string.</html>")); 
     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     setSize(200,200); 
     setVisible(true); 
    } 
} 
+0

Fonctionne très bien et est une solution courte. C'est sale et ça marcherait si vous mettez un à la fin. ce serait plus agréable;) – guerda

+0

Depuis que vous avez demandé si bien! :) – banjollity