Feste Breite einer JTextPane, die HTML anzeigt

Status
Nicht offen für weitere Antworten.

Beren77

Mitglied
Hallo,

ich würde gerne eine feste Breite für eine JTextPane angeben, so dass der HTML Text, der in ihr angezeigt wird, umgebrochen wird, sobald diese Breite überschritten wird.

_Das_ es irgendwie geht, habe ich in einer anderen Applikation gesehen (namentlich dem Farsigardan). Meine Versuche, dieses Verhalten zu kopieren, scheintern aber kläglich. Ich habe mal ein kürzestmögliches Beispiel von meinem Code angefügt und das JTextPane wird mit einer horizontalen Scrollbar angezeigt... Wieso? (Ich habe versucht, die Constraints für die ScrollBar auf HORIZONTAL_NEVER zu setzen, aber das hilft leider auch nicht...).

Irgendwelche Ideen?
Danke.
Beren

Code:
package main;
import java.awt.*;
import javax.swing.*;

public class TestApplet extends JApplet {
  class FixedWidthTextPane extends JTextPane {
    public FixedWidthTextPane() {						
      setContentType("text/html");
      setEditable(false);			
    }		
  }
		
  public void start() {
    setSize(600, 770);
    setLayout(new BorderLayout());
    FixedWidthTextPane textPane = new FixedWidthTextPane();
    Dimension size = new Dimension(580, 250);		
    textPane.setPreferredSize(size);
    textPane.setText("<html>" + 
                                  "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +
                                  "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXWYZ" +
                                  "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" +
                             "</html>");
    getContentPane().add(new JScrollPane(textPane), BorderLayout.SOUTH);
  }
}
 

der JoJo

Bekanntes Mitglied
probier mal lieber ein JTextArea zu verwenden und mit setLineWrap(bool) oder setWrapStyleWord(bool) zu arbeiten
 

Beren77

Mitglied
der JoJo hat gesagt.:
probier mal lieber ein JTextArea zu verwenden und mit setLineWrap(bool) oder setWrapStyleWord(bool) zu arbeiten

Kann denn eine JTextArea HTML?? (Der "abcd..."-Text oben war ja nur als Beispiel gedacht...). Wenn ich das obige Beispiel so übernehme und nur die JTextPane durch die JTextArea ersetze (und den setContentType-Aufruf auskommentiere sowie setLineWrap auf true setze), wird der Text zwar umgebrochen, aber er ist auch leider nicht mehr HTML formatiert... *schnüüf*
 

Beren77

Mitglied
Wildcard hat gesagt.:
Versuch mal getScrollableTracksViewportWidth zu überschreiben und false zurückzugeben.

Auch das habe ich bereits versucht (hatte den Beitrag vorher über die Suchfunktion gefunden ;)) -- und außerdem habe ich sowohl "setSize" als auch "setPreferredSize" überschrieben. Leider ohne Erfolg...
 

tarzan

Mitglied
Nur um sicher zu gehen:

Du weißt schon das der Text automatisch umgebrochen wird, oder? Das das in deinem Beispiel nicht so ist liegt nur daran, dass dein abc-Text keine Leerzeichen enthält, normaler Text aber schon.

Was du also willst ist das der Text trotzdem umgebrochen wird, falls mal ein Wort drin vorkommt das mehr als 100 oder so Buchstaben hat?

Falls dir das alles klar war, bitte überlesen :D
 

Beren77

Mitglied
Ja, ist mir klar. Es kann in meiner HTML-Seite aber vorkommen, dass eine laaaaange Zeile ohne Leerzeichen dargestellt werden soll, und die soll dann "kaputtgebrochen" werden.

Eine "Pseudo-Lösung" ist natürlich, einfach Leerzeichen einzufügen... Aber so wirklich glücklich bin ich damit nicht...
 

Beren77

Mitglied
Aha. Ich muss meine Aussage leider revidieren: Auch im o.g. Programm funktioniert der Umbruch nicht, bzw. nicht so wie ich dachte.

Es bleibt also wohl festzuhalten, dass ein Umbrechen ohne Leerzeichen nur dann funktionieren wird, wenn man sich sein eigenes EditorKit (oder zumindest Document) schreibt... -- Oder man fügt eben doch einfach Leerzeichen ein...

Danke für Eure Ideen!
 
K

keiner

Gast
mir fällt da spontan nur der manuelle weg ein, für alle die dies hier lesen und sich mal wieder ärgern, das kein Code am ende rausspringt ;)
nur zusammengehackt, nicht getestet:

Code:
String strText = "Dies ist ein seeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeehr langes Wort";
StringTokenizer strT = new StringTokenizer(strText, " ");
String text4Pane = "";

while(strT.hasMoreTokens())
{
	if(word.length()>25)
		text4Pane += breakWord(word);
	else
		text4Pane += word+" ";
}
System.out.println(">>"+text4Pane);


//-----Hilfsmethode-----//

private String breakWord(String in_word)
{
	String strReturn = "";
	while(in_word.length()>25)
	{
		strReturn += in_word.substring(0, 25)+"- ";
		in_word = in_word.substring(25);
	}
	return strReturn+in_word+" ";	
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JtoolBar feste Breite ? AWT, Swing, JavaFX & SWT 13
S Feste Breite und Höhe für einen formatierten Text. AWT, Swing, JavaFX & SWT 5
H Feste Positionen und Größen in JavaFX AWT, Swing, JavaFX & SWT 1
U feste Größe für den Zeichenbereich eines JFrames AWT, Swing, JavaFX & SWT 4
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
F Im BorderLayout eine feste Grösse zuweisen! AWT, Swing, JavaFX & SWT 9
S Feste Position einer Komponente auf Glasspane AWT, Swing, JavaFX & SWT 6
S JTable feste Zeilenanzahl?! AWT, Swing, JavaFX & SWT 4
S GridBagLayout - JTable zu groß - feste Zellengröße? AWT, Swing, JavaFX & SWT 2
T Feste Fenstergröße AWT, Swing, JavaFX & SWT 3
G JCombobox PopupMenu feste größe zuweisen AWT, Swing, JavaFX & SWT 3
G Feste Größe einer TextArea AWT, Swing, JavaFX & SWT 2
K BorderLayout--> feste Größe AWT, Swing, JavaFX & SWT 2
N Textfield feste größe? AWT, Swing, JavaFX & SWT 1
P JPanel im BorderLayout feste Größe/Position zuordnen AWT, Swing, JavaFX & SWT 3
T jTable Colum feste position AWT, Swing, JavaFX & SWT 3
S JOptionPane und eine feste Zeilenbreite. AWT, Swing, JavaFX & SWT 4
B feste Zellgröße AWT, Swing, JavaFX & SWT 2
P JPanel und Co. feste breiten AWT, Swing, JavaFX & SWT 4
K Layout-Frage: 3 Feste Tabellen, 6-10dynamische AWT, Swing, JavaFX & SWT 2
Jose05 Javafx Label Höhe=Breite AWT, Swing, JavaFX & SWT 1
W JavaFX Button - optimale Breite berechnen AWT, Swing, JavaFX & SWT 1
J Gridpane Breite in Scrollpane automatisch anpassen AWT, Swing, JavaFX & SWT 2
G JavaFX - bugs bei der ermittlung der breite der nodes AWT, Swing, JavaFX & SWT 3
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
C JavaFX TableColumn - TableColumn Breite AWT, Swing, JavaFX & SWT 8
D Swing Breite einer HTML Tabelle in einer JTextPane AWT, Swing, JavaFX & SWT 6
Z Java Draw -JFrame finde nicht die Mitte & höhe, breite AWT, Swing, JavaFX & SWT 7
F Breite beim GridBagLayout festlegen AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
M Wie ermittele ich die Breite und Höhe meines Displays in Pixel AWT, Swing, JavaFX & SWT 3
K JSpinner in passender Breite erstellen oder automatisch anpassen AWT, Swing, JavaFX & SWT 2
E Breite eines JButton dynamisch ändern AWT, Swing, JavaFX & SWT 3
S JTable Spalte "normale" Breite? AWT, Swing, JavaFX & SWT 5
N Swing Optimale Höhe eine JTextPanes bei festgelegter Breite bestimmen AWT, Swing, JavaFX & SWT 23
L TreeViewerColumn - gesamte TreeView-breite nutzen? AWT, Swing, JavaFX & SWT 5
M 2 Buttons mit derselben Breite AWT, Swing, JavaFX & SWT 9
4 Shapes Informationen wie Breite usw. mitgeben AWT, Swing, JavaFX & SWT 5
B JFileChooser breite der Spalten? AWT, Swing, JavaFX & SWT 5
B Label breite ermitteln vor dem rendern? AWT, Swing, JavaFX & SWT 7
A FormLayout Panel-Breite AWT, Swing, JavaFX & SWT 7
Dit_ Swing JComboBox | Breite des Scrollbalkens AWT, Swing, JavaFX & SWT 4
D JFreeChart Breite (width) ändern AWT, Swing, JavaFX & SWT 6
Rudolf Swing Swing Button breite stanardisieren AWT, Swing, JavaFX & SWT 2
N Swing JPanel Nur Breite festlegen AWT, Swing, JavaFX & SWT 7
M breite eines "drawString()-Strings" AWT, Swing, JavaFX & SWT 2
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
F 2D-Grafik Problem mit höhe||breite eines JFrames AWT, Swing, JavaFX & SWT 4
M SWT Breite von Textfeld nur ohne Layout änderbar AWT, Swing, JavaFX & SWT 2
E Wie Breite und Höhe eines Panels festlegen? AWT, Swing, JavaFX & SWT 5
H SWT Breite von componenten zu bestimmen AWT, Swing, JavaFX & SWT 2
S JSlider Track Breite und Farbe AWT, Swing, JavaFX & SWT 2
N breite von JList festlegen AWT, Swing, JavaFX & SWT 3
E Layoutmanager mit fester Breite gesucht AWT, Swing, JavaFX & SWT 9
reibi SWT Breite Taskleiste herausfinden AWT, Swing, JavaFX & SWT 2
C Breite JTextArea/JScrollPane setzen AWT, Swing, JavaFX & SWT 4
S Swing JTable: Spalten mit relativer Breite im ungleichmäßigen Verhältnis AWT, Swing, JavaFX & SWT 2
M Swing JTable + JScrollPane (Breite und Höhenproblem) AWT, Swing, JavaFX & SWT 1
S Für Breite und Höhe werden 0.0 angezeigt AWT, Swing, JavaFX & SWT 2
C Swing JTextArea mit fester Breite und angepasster Höhe??? AWT, Swing, JavaFX & SWT 8
S Table oder TableModel so ueberschreiben, dass Columns minimale Breite haben? AWT, Swing, JavaFX & SWT 2
P Breite und Höhe des contentPane abfragen AWT, Swing, JavaFX & SWT 3
Y Einzigartigkeit des GridBagLayout - individuelle Höhe/Breite AWT, Swing, JavaFX & SWT 4
J JTextPane mit genau 80 Zeichen breite definieren? AWT, Swing, JavaFX & SWT 3
T Breite des Containers ist gegeben - wie die Höhe berechnen? AWT, Swing, JavaFX & SWT 3
V Swing: Konstant breite Sidebar AWT, Swing, JavaFX & SWT 2
D Breite eines JScrollPane AWT, Swing, JavaFX & SWT 3
G JMenu problem mit der Breite von einer JCheckBox AWT, Swing, JavaFX & SWT 2
A JTextFiled-Breite und Höhe ändern AWT, Swing, JavaFX & SWT 3
B horizontale bzw. vertikale JScrollBar breite von JScrollPane AWT, Swing, JavaFX & SWT 5
S JTable - Breite der Linien AWT, Swing, JavaFX & SWT 8
D GridBagLayout: 2. Spalte auf JPanel-Breite expandieren AWT, Swing, JavaFX & SWT 2
F JTable: Spaltenbreiten an Breite der Zelleninhalte anpassen AWT, Swing, JavaFX & SWT 5
lhein Breite der Scrollbar in einer Combobox ändern AWT, Swing, JavaFX & SWT 5
G Klasse Image - Höhe und Breite ermitteln AWT, Swing, JavaFX & SWT 12
Z Column Breite in JTable automatisch an Inhalt anpassen AWT, Swing, JavaFX & SWT 3
R Breite von JTextField in einem GridBagLayout begrenzen AWT, Swing, JavaFX & SWT 3
P Breite eines JScrollbar vergrößern, aber wie? AWT, Swing, JavaFX & SWT 8
B JEditorPane: Höhe für bestimmte Breite bestimmen AWT, Swing, JavaFX & SWT 4
K JTextfield - breite AWT, Swing, JavaFX & SWT 3
S JPanel in JScrollPane in der Breite begrenzen AWT, Swing, JavaFX & SWT 3
K Höhe und Breite eines Panels im GridBagLayout ermitteln AWT, Swing, JavaFX & SWT 9
M Breite veraendern zwischen 2 JPanels AWT, Swing, JavaFX & SWT 2
D JLabel mit fester Breite und beliebiger Höhe AWT, Swing, JavaFX & SWT 4
L wie kann man die Höhe und Breite von JList festlegen AWT, Swing, JavaFX & SWT 3
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben