markierten Text auf Zeichen zuvor/danach pruefen

user.src

Mitglied
Hi,

ich habe eine JTextArea und einen Button, welcher die .getSelectedText() Methode der JTextArea aufruft.

Ich moechte nun den markierten Text pruefen, ob er mit "<b>" beginnt und mit "</b>" endet.
Wie geh ich das am besten an?
mit startsWith/endsWith bezieh ich mich ja nur auf den markierten Text...

Danke :)
 

Gucky

Top Contributor
Du willst den markierten Text auf Prä- und Suffix testen, nimmst aber nicht startsWith() und endsWith(), da sich die nur auf den markierten Text beziehen?
 

user.src

Mitglied
Korrekt.
Wenn ich das Wort "Test" habe, und nur dieses markiere, kann ich doch nicht mit startWith pruefen,
ob es mit "<b>" beginnt, da Test ja nun mal mit "T..." beginnt.
 

Gucky

Top Contributor
Jetzt verstehe ich, was du willst. Du willst gucken, ob davor und danach dieser Code kommt.

Da könntest du den Ort des markierten Textes suchen und anhand dessen nachprüfen, ob im gesamten Text dieser Code ist.

Eine andere Möglichkeit wäre es, dass du dir anguckst, wie die TextArea herausfindet, welcher Text markiert ist und so die Position des markierten Textes herausfindest und überprüfst, ob der Text vorhanden ist.
 

user.src

Mitglied
hatte die letzten Tage leider wenig Zeit mich dem Problem zu widmne... daher erst jetzt meine Antwort.

Danke auf jeden Fall erstmal! :)

mit .getSelectionStart() bzw .getSelectionEnd() ermittel ich die position des Anfangs/Endes der markierten Stelle. mit .getSelectionStart()-3 muesste ich dann ja 3 Stellen nach hinten springen.
So weit, so gut.
Hier stellt sich mir nun aber die Frage...wie checke ich, ob ".getSelectionStart() -3" bis ".getSelectionStart()" nun bspw. den String "<b> beinhaltet?
Da setzt es bei mir leider einfach aus...

Ich koennte mir ne for-Schleife schreiben, und diese 3x durchlaufen lassen, wobei die Caret-Position
von .getSelectionStart() - 3 jeweils eins nach "vorn" verschoben wird...aber wie check ich denn den
Textinhalt dort?
 

user.src

Mitglied
Sorry fuer den Doppelpost, aber ich finde keine Option zum editieren des Beitrags...

Ich hatte nun folgende Idee, nur leider fkt. die nicht, und ich check nicht so ganz warum...

Mittlerweile bin ich vom JTextField auf JEditorPane geswitched...

Ich habe folgende Klasse:

Java:
import javax.swing.JEditorPane;
import javax.swing.text.Document;

public class Editor extends JEditorPane {
	
	private Document doc;
	
	public Editor(){
		
		this.doc = this.getDocument();
	
	}

	public Document getDoc() {
		return doc;
	}

	public void setDoc(Document doc) {
		this.doc = doc;
	}

}

Zudem habe ich mir nen Button geschrieben, dem ich Editor uebergebe.
Dort gibts folgende Methode, in der ich auf Text vor und/oder nach selektiertem Text checken moechte:

Java:
	public void boldText(Editor ed) {
		
		String bold = "<b>" + ed.getSelectedText() + "</b>";
		String boldTag = "<b>";
		int pos = this.editor.getCaretPosition();

		
		if (ed.getSelectedText().substring(ed.getSelectionStart()-3, ed.getSelectionStart()) == boldTag) {
			// TODO entferne Tags vor und nach selected Text
		}
		
		
		if (ed.getSelectedText() != null) {
			this.editor.replaceSelection(bold);
		} else {
//			this.editor.insert("<b></b>", pos); <- Stammt aus Zeiten, als Editor noch von JTextField erbte und nicht von JEditorPane
		
		}

	}

Die if-Bedingung in Zeile 8 der Methode kann so natuerlich nicht funtkionieren, dass ich ja eigentlich mit .equals gegenchecken muesste und nicht mit "==", dessen bin ich mir bewusst.
JEdoch kann ich die equals-Methode nicht aufrufen und ich will mit den "==" nur veranschaulichen, was ich da eigentlich tun moechte.

Bin da grad ein wenig mit meinem WIssen am Ende.
 

VfL_Freak

Top Contributor
Moin,

Die if-Bedingung in Zeile 8 der Methode kann so natuerlich nicht funtkionieren, dass ich ja eigentlich mit .equals gegenchecken muesste und nicht mit "==", dessen bin ich mir bewusst.
JEdoch kann ich die equals-Methode nicht aufrufen und ich will mit den "==" nur veranschaulichen, was ich da eigentlich tun moechte.
Wieso kannst Du "equals" nicht aufrufen ???:L
Das geht bei JEDEM String .....

Java:
if( ed.getSelectedText().substring(ed.getSelectionStart()-3, ed.getSelectionStart() ).equals(boldTag) )
Hier kommt ein Fehler ???:L
Wenn ja, welcher ???:L
Versuch' (zur Fehlersuche) ggf. mal den Text zuvor in eine eigene Variable zu schreiben, damit Du besser siehst, was genau draufsteht!

Gruß
Klaus
 

user.src

Mitglied
Bzgl. den Text in ne Var packen, kam ich auch schon :)
Klappt leider trotzdem nicht und ich versteh beim besten Willen nicht warum.

.equals() laesst sich nach wie vor nicht aufrufen. Habs eben nochmal gecheckt.

Die Fehlermeldung reich ich heute Abend nach.
Edit2: Bzw. ne Fehlermeldung als solche kann ich eigentlich nicht nachreichen. Ich wuerd halt gern
die equalsMethode aufrufen, aber das geht - wie gesagt - nicht.
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

.equals() laesst sich nach wie vor nicht aufrufen. Habs eben nochmal gecheckt.

Edit2: Bzw. ne Fehlermeldung als solche kann ich eigentlich nicht nachreichen. Ich wuerd halt gern
die equalsMethode aufrufen, aber das geht - wie gesagt - nicht
Keine Ahnung, was Du damit meinst! Ohne weitere Infos können wir Dir nicht helfen .....

Java:
String cTEMP_1 = ed.getSelectedText();
String cTEMP_2 = ed.getSelectedText().substring( ed.getSelectionStart()-3, ed.getSelectionStart() );
System.out.println( cTEMP_1);
System.out.println( cTEMP_2);
Was steht denn jetzt hier KONKRET auf den Variablen ???:L

Ein
Java:
String cTEMP_2 = ed.getSelectedText().substring( ed.getSelectionStart()-3, ed.getSelectionStart() );
if( cTEMP_2.equals( boldTag )
...
MUSS funktionieren ...
Welche Fehlermeldung kommt denn da ???:L
Oder meinst Du einfach nur, dass die if-Bedingung nicht erfüllt ist ?? .................

Gruß
Klaus
 

Gucky

Top Contributor
Du kannst den markierten String mit getSelecrionStart() - 3 ubd getSelectionEnd() + 3 und substring() in eine Variable tun und dann mit startsWith und endsWith überprüfen, ob dein Code drin ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Schreibprogramm nur markierten Text in kursiv oder fett schreiben Java Basics - Anfänger-Themen 3
harrli Markierten Text einer anderen Anwendung ermitteln Java Basics - Anfänger-Themen 10
S bbcodes bei markierten text setzen Java Basics - Anfänger-Themen 2
L Markierten text in string speichern Java Basics - Anfänger-Themen 8
C Markierten Text im JTextArea bearbeiten? Java Basics - Anfänger-Themen 2
A Die Werte der ersten beiden markierten Check-Boxen registrieren Java Basics - Anfänger-Themen 11
DStrohma Index einer markierten Zeile aus einer JList bekommen? Java Basics - Anfänger-Themen 5
K jTextPane: Farbe des markierten Textes ändern und auslesen? Java Basics - Anfänger-Themen 3
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
A Edit Text Negative Decimalzahlen Java Basics - Anfänger-Themen 18
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
A Text zu Morsecode Java Basics - Anfänger-Themen 8
O Java Text Area Zeilenausgabe Java Basics - Anfänger-Themen 7
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
A Werten aus dem Text ausliesten Java Basics - Anfänger-Themen 6
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
xFlozen Text mehrspaltig ausgeben Java Basics - Anfänger-Themen 3
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
M Apache POI PPT - Vertikales Alignment von Text im XSLFAutoShape Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
J java.text.DecimalFormat Java Basics - Anfänger-Themen 5
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
S Text-To-Speech mit Java Java Basics - Anfänger-Themen 2
L Text-Adventure Java Basics - Anfänger-Themen 3
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
tsom Erste Schritte itext Text als Block auf neue Seite Java Basics - Anfänger-Themen 0
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
D Text als Code in java-forum.com formatieren. Wie ? Java Basics - Anfänger-Themen 3
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
H Suche in Text und Markierung Java Basics - Anfänger-Themen 14
H Suche in einem Text Java Basics - Anfänger-Themen 17
F Input/Output Text einlesen lassen Java Basics - Anfänger-Themen 14
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
R Best Practice Palindrom in einem Text finden Java Basics - Anfänger-Themen 18
J Text Datei einlesen Java Basics - Anfänger-Themen 6
L Text und Ganzzahl in einer Dialogbox Java Basics - Anfänger-Themen 5
D Text Adventure Erstellen Java Basics - Anfänger-Themen 10
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D Bild zu Text Java Basics - Anfänger-Themen 4
L Text/Befehle zu Programmen senden Java Basics - Anfänger-Themen 1
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
S Ausgabe von Text Formatieren Java Basics - Anfänger-Themen 6
H Text in einen Button quetschen Java Basics - Anfänger-Themen 3
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
A Text teilen und Wörter zählen Java Basics - Anfänger-Themen 7
J Zahlen als Text übersetzen Java Basics - Anfänger-Themen 6
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
Z JSlider - Text wird nich angezeigt Java Basics - Anfänger-Themen 0
A Problem mit set.Text und übergabe Java Basics - Anfänger-Themen 2
A Probleme mit equals und get.Text Java Basics - Anfänger-Themen 12
M Text innerhalb Anführungsstriche als "eins" auswerten Java Basics - Anfänger-Themen 5
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben