Java JLabel, разбить текст на следующую строку?

давненько я задал вопрос!

Я разрабатываю приложение на Java, где есть. В любом случае, как вы можете или не можете видеть на картинке ниже, текст, который говорит Category Test отрезается и в конечном итоге говорит . Есть ли способ, которым я могу "сломать" текст, как только он заполнит ширину метки? Вот изображение:

enter image description here

что я сделал

я использовал JTextPane вот так:

    JTextPane text = new JTextPane();
    SimpleAttributeSet attr = new SimpleAttributeSet();   

    StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER);  

    pane.add(text, c);

затем я добавил свой текст, но все равно спасибо!

3 ответов


JLabels не может сделать это по умолчанию. Но!--0-->s имеют некоторую поддержку html, поэтому JLabel текст <html>First Line<br />Second Line</html> появится на двух строках.

если вы хотите компонент, который может разделить строки сам по себе, взгляните на JTextArea.


насколько я помню, вам нужно использовать JTextArea, если вы хотите textwrap. Надписи не делает этого.


вы можете на StyledLabel компонента из общего проекта JIDE открытым исходным слоем на http://java.net/projects/jide-oss/.

проблема с подходом html JLabel заключается в том, что он не автоматически переносится и примерно в 20-40 раз медленнее, чем обычная JLabel.

проблема с JTextArea или подход JTextPane это был странный вопрос размера и тоже 20 раз медленнее.

StyledLabel расширяет JLabel. Автоматическая линия оборачивая как раз одно из много особенности он добавляет. И производительность так же быстро, как простой JLabel.

надеюсь, это поможет.