9 Stimmen

Java JLabel, Text in die nächste Zeile umbrechen?

Es ist schon eine Weile her, dass ich eine Frage gestellt habe!

Ich entwickle eine Anwendung in Java, bei der JLabels verwendet werden. Wie Sie auf dem Bild unten vielleicht erkennen können, ist der Text, der sagt Category Test wird unterbrochen und endet mit den Worten Categor... stattdessen. Gibt es eine Möglichkeit, den Text zu "unterbrechen", sobald er die Breite des Etiketts ausfüllt? Hier ist das Bild:

enter image description here

Was ich getan habe

Ich habe ein JTextPane wie folgt verwendet:

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

    StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER);  

    pane.add(text, c);

Dann habe ich meinen Text hinzugefügt, aber trotzdem danke!

10voto

Jeffrey Punkte 43636

JLabel s können das standardmäßig nicht tun. Aber JLabel s haben eine gewisse Unterstützung für html, so dass ein JLabel mit dem Text <html>First Line<br />Second Line</html> würde auf zwei Zeilen erscheinen.

Wenn Sie eine Komponente suchen, die die Zeilen selbst aufteilen kann, sehen Sie sich die JTextArea .

2voto

Kenneth Funk Punkte 396

Wenn ich mich recht erinnere, müssen Sie ein JTextArea verwenden, wenn Sie Textumbruch wünschen. JLabel tut es nicht.

1voto

jidesoft Punkte 192

Sie können die StyledLabel Komponente aus dem JIDE Common Layer Open Source Projekt unter http://java.net/projects/jide-oss/ .

Das Problem mit html JLabel Ansatz ist es nicht Auto-Wrap und etwa 20 bis 40 mal langsamer als eine einfache JLabel.

Das Problem mit JTextArea oder JTextPane Ansatz ist es hat eine seltsame Größe Problem und ist auch 20 mal langsamer.

StyledLabel erweitert JLabel. Der automatische Zeilenumbruch ist nur eine der vielen Funktionen, die es bietet. Und die Leistung ist genauso schnell wie bei einem einfachen JLabel.

Ich hoffe, es hilft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X