Jak mogę wyświetlić nowy wiersz w JLabel
?
Na przykład, gdybym chciał:
Witaj świecie!
blahblahblah
Oto, co mam teraz:
JLabel l = new JLabel("Hello World!\nblahblahblah", SwingConstants.CENTER);
Oto, co jest wyświetlane:
Witaj świecie! Blahblahblah
Wybacz, jeśli to głupie pytanie, właśnie uczę się podstaw Swinga ...
java
user-interface
swing
formatting
jlabel
mportiz08
źródło
źródło
Odpowiedzi:
Otocz strunę
<html></html>
i zerwij linie<br/>
.źródło
Możesz spróbować to zrobić:
Zalety takiego rozwiązania to:
<br/>
, bez wątpienia.<
i>
ze<
i>
odpowiednio, zapobiegając niektórzy czynią spustoszenie.Co to jest:
"<html>" +
dodajehtml
tag otwierający na początku.replaceAll("<", "<").replaceAll(">", ">")
ucieka<
i>
dla wygody.replaceAll("\n", "<br/>")
zastępuje wszystkie znaki nowejbr
linii znacznikami (podział wiersza HTML) na to, co chciałeś+ "</html>"
zamyka naszhtml
tag na końcu.PS: Bardzo mi przykro, że obudziłem taki stary post, ale nieważne, masz niezawodny fragment dla swojej Javy!
źródło
Możesz użyć składnika MultilineLabel w składnikach Jide Open Source.
http://www.jidesoft.com/products/oss.htm
źródło
Możesz to zrobić
i automatycznie zawinie go w razie potrzeby.
źródło
Dziękuję Aakash za polecenie JIDE MultilineLabel. JIDE's StyledLabel również został ostatnio ulepszony do obsługi wielu linii. Poleciłbym go zamiast MultilineLabel, ponieważ ma wiele innych wspaniałych funkcji. Możesz przeczytać artykuł o StyledLabel poniżej. Jest nadal darmowy i open source.
http://www.jidesoft.com/articles/StyledLabel.pdf
źródło
JLabel jest w rzeczywistości w stanie wyświetlić niektóre podstawowe elementy HTML, dlatego nie reaguje na użycie znaku nowej linii (w przeciwieństwie do, powiedzmy, System.out).
Jeśli umieścisz odpowiedni kod HTML i
<BR>
użyjesz go, otrzymasz nowe linie.źródło
<br>
znacznik literału, który został sformatowany przez przepełnienie stosu jako dosłowny podział wiersza w poście.