Mit JLabel HTML - formatierten Text anzeigen

Haefel

Mitglied
Hi,

weiß jemand ob man den automatischen Zeilenumbruch bei HTML formatiertem Text im JLabel umgehen kann?
Oder gibt es noch eine andere Möglichkeit nicht zu editierenden Text(HTML - Formatiert) auszugeben? ???:L

Gruß
 

U2nt

Bekanntes Mitglied
Ne in nem JLabel geht das nicht, kannst aber das Font ändern via
setFont(Font);

HTML kannste mit nem JEditorPane machen glaub ich
 

Ebenius

Top Contributor
Verwende doch non-breaking spaces ([c]&nbsp;[/c]) statt SPC. Oder verwende ein [c]<pre>[/c]-Tag. Sowas also:

Java:
final String html =
      "<html><body>"
            + "This is a very very very very very very very very very very "
            + "very very very very very very very very very very very very "
            + "very long line of text"
            + "</body></html>";

final JPanel contentPane = new JPanel(new GridLayout(2, 1, 6, 6));

// NBSP instead of SPC
contentPane.add(new JLabel(html.replaceAll(" ", "&nbsp;")));

// PRE-Tag inside BODY
contentPane.add(new JLabel(html.replaceAll("(<body>)", "$0<pre>")
      .replaceAll("</body>", "</pre>$0")));

final JFrame f = new JFrame("Test Frame: JLabelHTML"); //$NON-NLS-1$
f.setContentPane(contentPane);
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setVisible(true);
@U2NT, meintest Du, dass ein JLabel kein HTML kann? Da liegst Du falsch. JLabel, JButton und einige andere Komponenten unterstützen HTML. Siehe Sun Java™ Tutorials: How to Use HTML in Swing Components.

Ebenius
 
Zuletzt bearbeitet:

phillnet

Neues Mitglied
Hallo,

die Tipps von Ebenius haben mir bei meinem Problem schon ein wenig weiter geholfen, aber die Lösung ist leider noch nicht perfekt.

Bild 1 (title_01.png) zeigt ein JLabel welches mit HTML formatiert wurde. Leerzeichen wurden mit &nbsp; ersetzt.
Bild 2 (title_02.png) zeigt ein JLabel welches nicht mit HTML formatiert wurde.

Es geht mir um die "Punkte" (...) am Ende der JLabels (s. Bild 2). Diese sehr schöne Lösung für einen zu langen Text funktioniert leider nicht bei HTML kodiertem Text (s. Bild 1).

Meine Fragen:
1. Gibt es eine Möglichkeit, diese Funktion auch für HTML kodierte Texte einzuschalten (z.B. in Java 7)?
2. Wenn nicht: Wie sollte ich beim selbstständigen programmieren einer Lösung am besten vorgehen?
2a. Wo wird in Java diese Formatierung vorgenommen (Source Code)?
2b. Wo ist die Java Methode, die die HTML Tags aus dem String entfernt?
Ich denke nämlich, dass eine Kombination beider Methoden das gewünschte Ergebnis liefern könnte.

Vielen Dank schonmal und einen schönen Abend noch :)
 

Anhänge

  • title_01.png
    title_01.png
    3,9 KB · Aufrufe: 30
  • title_02.png
    title_02.png
    3,9 KB · Aufrufe: 30

Ebenius

Top Contributor
1. Gibt es eine Möglichkeit, diese Funktion auch für HTML kodierte Texte einzuschalten (z.B. in Java 7)?
Würde mich stark wundern.
2. Wenn nicht: Wie sollte ich beim selbstständigen programmieren einer Lösung am besten vorgehen?
2a. Wo wird in Java diese Formatierung vorgenommen (Source Code)?
2b. Wo ist die Java Methode, die die HTML Tags aus dem String entfernt?
Ich denke nämlich, dass eine Kombination beider Methoden das gewünschte Ergebnis liefern könnte.
Ich denke das nicht. Du stellst Dir das ein ganzes Stück zu einfach vor. HTML in Komponenten ist nicht trivial. Du machst nur ein bisschen Text, aber es könnte sich ja auch um Tabellen mit Bildern und dergleichen handeln. Die HTML-Darstellung kann schlecht ein Bild abschneiden und irgendwo drei Punkte hinmalen, weil sie keine Ahnung darüber hat, wo die Punkte denn passen würden.

Die Darstellung eines JLabel wird über dessen UI-Delegate gelöst (i.d.R. BasicLabelUI und deren Ableitungen). Zur HTML-Darstellung wird (nicht zwangsweise aber von allen mir bekannten Look And Feels) die BasicHTML-Klasse benutzt. Diese verteilt die Darstellung per BasicHTMLViewFactory, HTMLEditorKit und HTMLDocument auf viele verschiedene javax.swing.text.View-Ableitungen. Auf die Schnelle fällt mir da keine einfache Lösung ein.

Ebenius
 

jared

Aktives Mitglied
Hi!!!
Habe auch so ein ähnliches Problem. Mit dem JEditorPane zeigt er mir mein HTML-Code korrekt an, benutze ich aber JLabel, wird mir nichts angezeigt. Woran könnte dies liegen??
JEditorPane kann ich nicht benutzen, da ich dadurch nicht sehe, was darunter liegt. Ich muss aber sehen, was unter diesen liegt, gäbe es hierfür vllt eine Möglichkeit den Hintergrund transparent zu machen??

mfg
 

jared

Aktives Mitglied
Danke.
HTML-Text wird mehr oder weniger ausgegeben und der Background ist auch Transparent.
Kann man eig nur ein JEditorPane pro Anwendung benutzen oder kann man mehrere instanziieren?? Denn bei mir wird der Text überlagert ausgegben.

mfg
 

Michael...

Top Contributor

jared

Aktives Mitglied
Habe es jetzt endlich so implementiert das es eher weniger als mehr angezeigt wird.
Ohne jetzt erst weiter auf mein Problem einzugehen, gibt es außer JEditorPane noch andere Klassen bzw. Elemente, die HTML-Text anzeigen können???

mfg
 

Ebenius

Top Contributor
[…]gibt es außer JEditorPane noch andere Klassen bzw. Elemente, die HTML-Text anzeigen können???
Standardgemäß bieten diese Swing-Komponenten Basic HTML Support: JLabel, AbstractButton (also JButton, JRadioButton, JToggleButton), JMenuItem (eigentlich auch ein AbstractButton) und damit auch dessen Derivate (JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem), JTabbedPane, JToolTip.

Ebenius
 

jared

Aktives Mitglied
JLabel funktioniert bei mir aber nicht. Bedeutet, wenn ich z. B. "<html>Hallo</html>" verwende, zeigt er mir nichts an. Oder ist das HTML-Statement, ich sage jetzt ma, zu einfach?? muss ich evtl doch den body-tag angeben oder wie??

mfg
 

jared

Aktives Mitglied
Was mir gerade einfällt, woran es liegen könnte. Also ich habe mehrere Objekte von einer Klasse, die von JPanel erbt. Diese Klasse legt, die jeweilige Größe des JPanels fest. Innerhalb dieses, zeichne ich, z. B. ein Rechteck oder ein Rechteck mit abgerundeten Ecken,... . Ich denke nun, dass das JLabel und das JEditorPane wegen diesem Zeichnen nicht korrekt angezeigt wird. Das JLabel wird mit dem Inhalt nie angezeigt und das JEditorPane erst, nachdem ich mit dem einen Objekt, der obigen Klasse, ein Drag and Drop ausführe und selbst dann sind noch einige Bugs damit verbunden.
Kennt jemand noch eine andere Möglichkeit?? oder woran es vllt liegen könnte??
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela HTML-tags für JLabel AWT, Swing, JavaFX & SWT 9
S jLabel HTML Formatierung AWT, Swing, JavaFX & SWT 2
N JLabel HTML mit custom Font AWT, Swing, JavaFX & SWT 0
T Swing HTML Text aus JLabel ohne "HTML-Tags" in String einlesen AWT, Swing, JavaFX & SWT 5
destroflyer Wort im JLabel verlinken (per HTML) AWT, Swing, JavaFX & SWT 3
B Grafiken in JLabel mittels html AWT, Swing, JavaFX & SWT 5
N Performanceprobleme mit JLabel und HTML content AWT, Swing, JavaFX & SWT 5
B HTML in Swing Components (JLabel) AWT, Swing, JavaFX & SWT 7
G Warum funktioniert html in JLabel nicht ? AWT, Swing, JavaFX & SWT 3
G Zeilenabstand bei HTML-Texten in JLabel/JTextPane AWT, Swing, JavaFX & SWT 7
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
C Swing Übergabe von String an JLabel AWT, Swing, JavaFX & SWT 9
H Swing Anpassen der Textgröße im JLabel funktioniert nur bedingt AWT, Swing, JavaFX & SWT 7
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
D JLabel übereinanderlegen AWT, Swing, JavaFX & SWT 5
E JLabel kopieren AWT, Swing, JavaFX & SWT 31
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Swing JLabel Verknüpfung aktualisieren AWT, Swing, JavaFX & SWT 3
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
F JLabel mit ImageIcon per Button bewegen AWT, Swing, JavaFX & SWT 4
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
E JLabel AWT, Swing, JavaFX & SWT 1
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
I JLabel neue Zeile AWT, Swing, JavaFX & SWT 4
L JLabel ist verzerrt/größer als eingestellt AWT, Swing, JavaFX & SWT 15
B Observer Pattern JLabel ändern AWT, Swing, JavaFX & SWT 7
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
E Wie kann ich ein JLabel auf größe der schriftlänge setzten? AWT, Swing, JavaFX & SWT 2
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
BreakdownBob Swing JLabel verschwindet hinter Image AWT, Swing, JavaFX & SWT 2
L Kalendar als JLabel einfügen AWT, Swing, JavaFX & SWT 3
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
it_is_all jLabel.setText -> Char in Str: NullpointerException AWT, Swing, JavaFX & SWT 1
4 Swing JLabel wird ,,abgehackt" AWT, Swing, JavaFX & SWT 3
it_is_all JLabel.setIcon - funktioniert nicht mehr AWT, Swing, JavaFX & SWT 2
P Aktualisierung von jLabel in jFrames AWT, Swing, JavaFX & SWT 8
DaCrazyJavaExpert Swing JLabel Klickanimation AWT, Swing, JavaFX & SWT 4
A Swing JLabel als Parameter übergeben AWT, Swing, JavaFX & SWT 9
M JLabel ausrichten AWT, Swing, JavaFX & SWT 2
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
Z jLabel von Methode aus aktualisieren AWT, Swing, JavaFX & SWT 7
T JLabel Textinhalt von Oben anzeigen AWT, Swing, JavaFX & SWT 1
N JLabel in JTabbedPane verschieben AWT, Swing, JavaFX & SWT 2
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
R Swing JLabel berührung an einem anderen Label prüfen AWT, Swing, JavaFX & SWT 3
Thallius Swing "..." beim JLabel verhindern? AWT, Swing, JavaFX & SWT 3
OlafHD JLabel im JFrame Zentrieren AWT, Swing, JavaFX & SWT 2
T Event Handling JLabel als eigener Button AWT, Swing, JavaFX & SWT 7
T JLabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
KilledByCheese Swing 2D JLabel Array Maze zeichnen AWT, Swing, JavaFX & SWT 2
F Abgeleitetes JLabel AWT, Swing, JavaFX & SWT 16
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
J Statisches JLabel adden AWT, Swing, JavaFX & SWT 4
J JLabel Visible setzen in KeyListener AWT, Swing, JavaFX & SWT 13
T JLabel in die Mitte(JLabel.CENTER geht nicht) AWT, Swing, JavaFX & SWT 12
2 JLabel - setText ändert den Text nicht AWT, Swing, JavaFX & SWT 4
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta JLabel anzuzeigenden Text zentrieren AWT, Swing, JavaFX & SWT 9
K Swing unterschied JTextField und JLabel AWT, Swing, JavaFX & SWT 7
F Swing JLabel in JFrame anpassen AWT, Swing, JavaFX & SWT 20
E JLabel aus Runnable ändern AWT, Swing, JavaFX & SWT 2
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
D JLabel bei Aufruf neue Zeile AWT, Swing, JavaFX & SWT 5
W Swing JLabel jede Sekunde aktualisieren, ohne Timer zu benutzen AWT, Swing, JavaFX & SWT 4
F ListCellRenderer mit JLabel und MouseListener AWT, Swing, JavaFX & SWT 4
F Swing JLabel wird nicht sofort Angezeigt AWT, Swing, JavaFX & SWT 3
D Timer für Bildfolge in einem jLabel AWT, Swing, JavaFX & SWT 5
S JLabel-Text in Methode setzen? AWT, Swing, JavaFX & SWT 2
GreyFox JLabel in laufender Anwendung erzeugen AWT, Swing, JavaFX & SWT 6
H Position eines JLabel in einem JPanel AWT, Swing, JavaFX & SWT 2
Z Auf ein JLabel drauf malen? AWT, Swing, JavaFX & SWT 1
S JLabel in den Vordergrund rücken AWT, Swing, JavaFX & SWT 1
A JLabel hochzählen lassen. AWT, Swing, JavaFX & SWT 6
S JLabel mit ImageIcon, komischer Rahmen? AWT, Swing, JavaFX & SWT 2
I Swing JLabel Bild für 1sec anzeigen lassen AWT, Swing, JavaFX & SWT 13
S JLabel anordnen AWT, Swing, JavaFX & SWT 2
J ungewollt-automatische Größenänderung von JLabel AWT, Swing, JavaFX & SWT 5
H AWT Fenster- und JLabel-Größe automatisch anpassen AWT, Swing, JavaFX & SWT 2
L 2D-Grafik PNG Datei in JLabel Array Problem AWT, Swing, JavaFX & SWT 4
S Swing Exception in thread "AWT-EventQueue-0" bei Jlabel AWT, Swing, JavaFX & SWT 4
B Swing JLabel und LayoutManager AWT, Swing, JavaFX & SWT 20
M Bild aus JLabel resizen und speichern AWT, Swing, JavaFX & SWT 0
A Swing JLabel/JTextField Inhalt mit JSlider verändern AWT, Swing, JavaFX & SWT 12
O Statusleiste mit JLabel aktualisieren AWT, Swing, JavaFX & SWT 5
G jLabel aus anderem Fenster ändern AWT, Swing, JavaFX & SWT 7
T JLabel Nullpunkt verschieben AWT, Swing, JavaFX & SWT 6
F Swing JPanel mit JLabel spinnt? AWT, Swing, JavaFX & SWT 2
M Massenweise JLabel ? oder ? AWT, Swing, JavaFX & SWT 3
J JLabel während einer methode aktualisieren AWT, Swing, JavaFX & SWT 6
R AWT JLabel oder JButton aktualisieren AWT, Swing, JavaFX & SWT 1
V JLabel bzw. GUI aus externen Thread ansteuern AWT, Swing, JavaFX & SWT 3
G JLabel verdeckt AWT, Swing, JavaFX & SWT 12
A JLabel zeichendicke einstellen AWT, Swing, JavaFX & SWT 3
B Repaint auf JFrame, JLabel und ImageIcon AWT, Swing, JavaFX & SWT 4
S JLabel zeigt ImageIcon nicht AWT, Swing, JavaFX & SWT 13
S jLabel / jText beim starten ausblenden AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben