Swing jTextPaine kein Zeilenumbruch nach setText()

Status
Nicht offen für weitere Antworten.

Sasch

Mitglied
Hallo Leute,

ich komm grad einfach nicht weiter. Ich möchte in ein jTextPaine der auf text/html eingestellt ist, zum ändern des Styles (fett, kursiv ...) den markierten Text mit z.B. <b></b> Tags einklammern, da dieser Text dann später in eine Website eingebaut werden soll.

Dies funktioniert eigentlich ganz gut, nur wenn der Text über mehrere Zeilen geht, werden die Zeilenumbrüche in Leerzeichen umgewandelt, und der Text steht dann in einer Zeile:

Java:
                   if(jTextBereich.getSelectedText()==null){

					}else{
						int anfang, ende;
						String sAnfang,sZwischen,sRest;
						sAnfang="";
						sZwischen="";
						sRest="";
						
						
						anfang = jTextBereich.getSelectionStart();
						ende = jTextBereich.getSelectionEnd();
						
						try {
							sAnfang = jTextBereich.getText(0, anfang);
							sZwischen = jTextBereich.getText(anfang,jTextBereich.getSelectedText().length());
							jTextBereich.selectAll();
							sRest = jTextBereich.getText(ende,jTextBereich.getSelectedText().length()-ende);
							JOptionPane.showMessageDialog(null, sAnfang + sZwischen + sRest, "Gesamttext", JOptionPane.OK_CANCEL_OPTION);
						} catch (BadLocationException e1) {
							e1.printStackTrace();
						}
					
						if(jStyle.getSelectedItem().equals("normal")){
							jTextBereich.setText(sAnfang + sZwischen + sRest);
						}else if(jStyle.getSelectedItem().equals("fett")){
							jTextBereich.setText(sAnfang + "<b>" + sZwischen + "</b>" + sRest);
						}else if(jStyle.getSelectedItem().equals("kursiv")){
							jTextBereich.setText(sAnfang + "<i>" + sZwischen + "</i>" + sRest);
						}else if(jStyle.getSelectedItem().equals("fett/kursiv")){
							jTextBereich.setText(sAnfang + "<b><i>" + sZwischen + "</i></b>" + sRest);
						}

						
					}

wie bekomme ich diese Zeilenumbrüche wieder hin?
 
Zuletzt bearbeitet:

arthur177

Mitglied
wie wäre es mit einem <br />?

Java:
jTextBereich.setText(sAnfang + "<b>" + sZwischen + "</b>" + sRest+"<br />);
 

Sasch

Mitglied
Theoretisch schon, aber ich weiß ja im Rest des Textes nicht, wo der User ein Enter gedrückt hat?!?

Es würde ja gehen, wenn ich in JTextPane Text einfügen könnte, so wie insert oder so, aber ich habe nichts gefunden. Daher habe ich den Text einfach gesplittet, nur dass er dann den Text halt wie oben beschrieben darstellt.
 
Zuletzt bearbeitet:

arthur177

Mitglied
hmmm...
eine Möglichkeit die mir spontan einfällt wäre, du gehst den eingegebenen Text Zeichen für Zeichen ab und fragst nach ob irgendwo das ASCII -Zeichen für ENTER (13) gedrückt wurde und bei diesem Zeichen soll dann ein <br /> eingefügt werden.
 

arthur177

Mitglied
zur verdeutlichung habe ich dir hier noch ein kleines Beispiel geschrieben:
Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Eingabefeld extends JFrame implements ActionListener{

	private JTextPane jTextPane = new JTextPane();
	private JButton jButtonAbsenden = new JButton("Absenden");
	private char[] charArrayEingabe;
	
	public Eingabefeld(){
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setLayout(new BorderLayout());
		this.add(jTextPane, BorderLayout.CENTER);
		jButtonAbsenden.addActionListener(this);
		this.add(jButtonAbsenden, BorderLayout.SOUTH);
		
		this.pack();
		this.setVisible(true);
	}
	
	public static void main(String[] args){
		new Eingabefeld();
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
//		System.out.println(jTextPane.getText()+"\n\n\n");
		charArrayEingabe = jTextPane.getText().toCharArray();
		for (int i = 0; i < charArrayEingabe.length; i++) {
			if((int)charArrayEingabe[i] == 13)
				System.out.println("<br />");
			System.out.print(charArrayEingabe[i]);
		}
		
	}
}

Du kannst es dir ja mal anschauen und auf deine bedürfnisse abändern. Vieleicht fällt dir mit diesem Ansatz auch eine bessere Lösung ein
 

Sasch

Mitglied
Ich habe mit diesem Ansatz jetzt gerade ein wenig "rumgespielt", sieht gut aus, vielen Dank!

Ich werde, sobald es Umgesetzt ist, das fertige Skript hier einstellen.
 

Sasch

Mitglied
hmmm es ist so, dass wenn der ganze Text eingelesen wird, alles super klappt, da dann auch alle HTML Tags wie <body> und <p></p> enthalten sind. Nur stehe ich damit vor dem Problem, dass ich nicht weiß, wo die Tags für <b> oder <i> eingefügt werden sollen, da durch die HTML Tags die Positionen von getSelected nicht stimmen.

fange ich an zu stückeln wie in meinem obigen Versuch, hat er schon beim Auslesen die "Enter" Eingaben verschluckt, die ich dann demnach vergeblich mit der if Abfrage herausfiltern kann. (wo nichts ist ...)

Jetzt stehe ich wieder fast am Anfang meines Problems. ;-(
 

arthur177

Mitglied
Ich weiß jetzt nicht wie aufwendig dein Programm ist, aber kannst du es mir mal schicken? dann schau ich mal rüber. Mir fällt sonst keine Lösung ein, da ich nicht weiß wie dein Programm arbeitet
 

arthur177

Mitglied
Ich habe dein Programm mal angeschaut.
das ASCII-Zeichen für ein Zeilenumbruch ist 10:oops:. War mir aber eigendlich sehr sicher das es 13 war:D
Naja mit 10 läufts au jeden fall.
 

Sasch

Mitglied
Ich habe denke ich jetzt eine Lösung gefunden:

Java:
						//Begrenzungszeichen einfügen, um den Text später wieder ausfiltern zu können
						jTextBereich.replaceSelection((char)94+jTextBereich.getSelectedText()+(char)126);
						
						//Text in ein CharArray einlesen (incl HTML Tags)
				        charArrayEingabe = jTextBereich.getText().toCharArray();
				        
				        //Begrenzer ausfiltern und an den Stellen die Tags einfügen
				        for (int i = 0; i < charArrayEingabe.length; i++) {
				            if((int)charArrayEingabe[i] == 94){
				                charAusgabe=charAusgabe+"<b>";
				                continue;
				            }
				            if((int)charArrayEingabe[i] == 126){
				                charAusgabe=charAusgabe+"</b>";
				                continue;
				            }
				            charAusgabe=charAusgabe+charArrayEingabe[i];
				        }
				        
				        //Ausfiltern merkwürdiger Zeichen vor <head>
				        charAusgabe=charAusgabe.substring(charAusgabe.indexOf("<head>"));
				        //System.out.println(charAusgabe);
				        
				        //Text wieder in das jTextPane eintragen
						jTextBereich.setText(charAusgabe);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N imageIcon zeigt kein Bild an AWT, Swing, JavaFX & SWT 5
P kein Scrollen nach affinertransformation bei mouse dragged AWT, Swing, JavaFX & SWT 2
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
F Kein JavaFX mehr im Eclipse Wizard AWT, Swing, JavaFX & SWT 1
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
cool_brivk24 Swing ImageIcon lädt kein Bild AWT, Swing, JavaFX & SWT 12
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
C JavaFX ProGuard -> TableView kein Inhalt AWT, Swing, JavaFX & SWT 7
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
krgewb Kein src-Verzeichnis AWT, Swing, JavaFX & SWT 1
A Swing CardLayout - kein Wechsel möglich AWT, Swing, JavaFX & SWT 5
Wurstkopp JavaFX JavaFX KeyEvent kein Zahlencode um unbekannte Mediatasten auszuwerten? AWT, Swing, JavaFX & SWT 0
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
S Kein JFrame unter Mac? AWT, Swing, JavaFX & SWT 8
F Gui weicht von Designpreview ab (kein fensterrahmen, andere größe) AWT, Swing, JavaFX & SWT 13
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
Seikuassi Swing JTextField nimmt kein Einfügen (Strg+V) an AWT, Swing, JavaFX & SWT 4
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
M Kein Zeichnen der Figuren auf JPanel AWT, Swing, JavaFX & SWT 4
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
S Kein DnD in allen Java Applikationen AWT, Swing, JavaFX & SWT 5
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
R Bitte kein Menü bei F10 AWT, Swing, JavaFX & SWT 9
M Kein resize nach Component.setVisible() AWT, Swing, JavaFX & SWT 2
T AWT Graphics G Kein Text erscheint warum? AWT, Swing, JavaFX & SWT 12
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
M Swing JMenu verdeckt durch Komponente (aber kein AWT und Swing mix!?) AWT, Swing, JavaFX & SWT 3
P EDT Problem? Kein Aufruf der repaint Methode AWT, Swing, JavaFX & SWT 6
H TextArea zeigt kein Text an AWT, Swing, JavaFX & SWT 6
Y Kein GantChart in einem GridLayout AWT, Swing, JavaFX & SWT 5
D Event in Fenster ausgeben + Observer + kein Plan AWT, Swing, JavaFX & SWT 2
D JTable während edit kein update machen lassen AWT, Swing, JavaFX & SWT 2
M Swing Kein update bei simulierten HTML-Link AWT, Swing, JavaFX & SWT 4
S JTable erlaubt kein Komma um Dezimazahlen einzugeben..? AWT, Swing, JavaFX & SWT 2
hdi Swing EDT macht kein repaint() AWT, Swing, JavaFX & SWT 2
T Editable ComboBox / kein Weiterspringen AWT, Swing, JavaFX & SWT 12
Spin Innere Klasse : kein static? AWT, Swing, JavaFX & SWT 8
G jpanel macht kein repaint AWT, Swing, JavaFX & SWT 2
V Kein Fokus für Key Bindings auf JPanel bzw JApplet AWT, Swing, JavaFX & SWT 2
G CellEditor - Kein "Textfeld" AWT, Swing, JavaFX & SWT 6
N JCalendar - Kein Datum auswählen AWT, Swing, JavaFX & SWT 3
E Hat Netbeans unter Linux kein Designer für Swing? AWT, Swing, JavaFX & SWT 3
@ JPanel: kein paintComponent() trotz repaint() AWT, Swing, JavaFX & SWT 4
W Kein MouseKlick-Event bei Bewegung AWT, Swing, JavaFX & SWT 2
B Finde kein PrintService der das Attribut PageRanges annimmt AWT, Swing, JavaFX & SWT 22
B [JTable] kein Sortieren der versteckten Columns AWT, Swing, JavaFX & SWT 9
B kein MouseEvent bei zu schneller Bewegung der Maus AWT, Swing, JavaFX & SWT 7
N Threads kein neues Fenster erzeugen lassen AWT, Swing, JavaFX & SWT 4
A Komponente entfernen. Kein neuzeichnen nach validate() AWT, Swing, JavaFX & SWT 2
technolion FileDialog/keine Multi-Selektion vs. JFileCHooser/kein LaF AWT, Swing, JavaFX & SWT 2
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
M Problem mit verschachtelten Events und kein ausweg in sicht AWT, Swing, JavaFX & SWT 3
Z kriege kein paint AWT, Swing, JavaFX & SWT 13
B Kein Repaint während eines Prozesses. AWT, Swing, JavaFX & SWT 5
O JScrollPane beinhaltet JPanel mit null Layout kein Scrollen AWT, Swing, JavaFX & SWT 3
K jTable - kein repaint? AWT, Swing, JavaFX & SWT 9
D JDialog: kein Icon nach setResizeable(false) AWT, Swing, JavaFX & SWT 5
K Kein Header in JTable ! AWT, Swing, JavaFX & SWT 8
S Mouselistener erzeugt kein Event in einem Menuitem AWT, Swing, JavaFX & SWT 2
J Tabelle zeigt kein Header AWT, Swing, JavaFX & SWT 5
A Ich kann kein JInternalFrame anzeigen ! AWT, Swing, JavaFX & SWT 7
G für showInputDialog kein eigenes Icon auswählen AWT, Swing, JavaFX & SWT 6
R JTextField - setBackground - kein Effekt AWT, Swing, JavaFX & SWT 5
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
M Dynamische Zellengröße und Zeilenumbruch AWT, Swing, JavaFX & SWT 7
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
T JTextPane ignoriert HTML Zeilenumbruch <br> tag wegen eigenem HTMLEditorKit AWT, Swing, JavaFX & SWT 5
E JavaFX TableView mit Zeilenumbruch in Zellen AWT, Swing, JavaFX & SWT 5
X JTextPane automatischer Zeilenumbruch IM Wort AWT, Swing, JavaFX & SWT 2
S Swing Warum funktioniert der automatische Zeilenumbruch mit arabischen Zeichen beim JTextPane nicht AWT, Swing, JavaFX & SWT 3
S Swing Automatischer Zeilenumbruch bei JTextPanes AWT, Swing, JavaFX & SWT 2
A Zeilenumbruch per button AWT, Swing, JavaFX & SWT 5
S Zeilenumbruch jTextArea mit toString AWT, Swing, JavaFX & SWT 2
S Swing Zeilenumbruch in JTable Zellen AWT, Swing, JavaFX & SWT 3
R JavaFX Automatischer Zeilenumbruch in Text AWT, Swing, JavaFX & SWT 13
B SWT Text - zeilenumbruch AWT, Swing, JavaFX & SWT 2
N Swing JTree TreeCellRenderer mit html und automatischen Zeilenumbruch AWT, Swing, JavaFX & SWT 8
T Nimbus JButton: Zeilenumbruch korrigieren? AWT, Swing, JavaFX & SWT 9
B Swing JEditorPane ohne Zeilenumbruch nach InputStream AWT, Swing, JavaFX & SWT 2
B Swing Zeilenumbruch in Graphics AWT, Swing, JavaFX & SWT 20
O JOptionPane.showMessageDialog mit automatischem Zeilenumbruch AWT, Swing, JavaFX & SWT 9
F Jgrid Zeilenumbruch AWT, Swing, JavaFX & SWT 10
GianaSisters Swing JTable Zellen intelligenter Zeilenumbruch AWT, Swing, JavaFX & SWT 4
C Zeilenumbruch von JTextPane wird nicht erkannt AWT, Swing, JavaFX & SWT 2
Zettelkasten drawString() Zeilenumbruch AWT, Swing, JavaFX & SWT 2
P LayoutManager Zeilenumbruch im Panel AWT, Swing, JavaFX & SWT 6
N Swing JTable - Problem mit Zeilenumbruch AWT, Swing, JavaFX & SWT 6
Spot84 swt label zeilenumbruch will nicht funktionieren AWT, Swing, JavaFX & SWT 1
H SWT Zeilenumbruch in List AWT, Swing, JavaFX & SWT 9
K Swing jTextPane zeilenumbruch AWT, Swing, JavaFX & SWT 2
S Zeilenumbruch in MsgBox AWT, Swing, JavaFX & SWT 13
eskimo328 JTable Zeilenumbruch im Header AWT, Swing, JavaFX & SWT 2
A JLabel und Zeilenumbruch - Nicht das Übliche AWT, Swing, JavaFX & SWT 4
G Buttonbeschreibung mit Zeilenumbruch AWT, Swing, JavaFX & SWT 3
D Toolbars und Zeilenumbruch (benutze FlowLayout) AWT, Swing, JavaFX & SWT 2
M Zeilenumbruch bei MessageFormat gesucht AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben