Zeile in einem TextArea markieren!

munuel

Mitglied
Hallo
Ich bin gerade dabei einen kleinen Parser zu schreiben.
Der Text wird in einem JTextArea dargestellt.

Wenn ein Fehler in dem Text gefunden wurde möchte ich automatisch an in die Zeile springen, in der er sich befindet.

Die Zeilennummer bekomm ich schon durch ein externes Programm geliefert!

Wie kann ich jetzt zu einer bestimmten Zeile in dem JTextArea springen und diese (durch eine andere Frabe) makieren?

Vielleicht einer eine Idee?

Viele Grüsse munuel
 
Hallo Chris,

mit JTextArea kannst du nur den ganzen Text formatieren (Farbe, Schriftart ändern).

Mit JEditorPane und JTextPane hingegen kannst du den Text an beliebig vielen Stellen verschieden formatieren.

Vg Erdal
 
hallo Erdal,
Hm also ich kann auch mit JTextArea einzelne Bereiche markieren,(select() ) das würde mir schon reichen.
Aber leider weiss ich noch nicht wie ich es mache in einer bestimmten Zeile zu gehen und diese Komplett zu markieren!
Ich weiss nämlich nicht wann eine Zeile anfängt und wann sie endet.
EditorPane und JTextPane habe ich mir angeschaut dort scheint es auch keine Methode zu geben über die man in eine bestimmte Zeile gelangt.
Viele Grüsse munuel (chris)
 
Hi Chris,

Hier ein kleines Beispiel:

Code:
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;

public class JTextAreaSelectionExample {

	JFrame f = new JFrame();
	JTextArea t = new JTextArea();
	
	int start, ende, linien, linie;
	
	public void example() {

		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.add(t);
		
		t.setText("Zeile0 Zeile0 Zeile0\nZeile1\nZeile2 Zeile2");
		
		try {

			linien = t.getLineCount(); // Zeilen
			start = t.getLineStartOffset(1); // Anfang Zeile 1
			ende = t.getLineEndOffset(1); // Ende Zeile 1
			linie = t.getLineOfOffset(25); // Zeile in der sich das 25. Zeichen befindet
			
				
		} catch (BadLocationException e) {
		}

		// Beispiel: Markierung Zeile 1
		t.select(start,ende);
		
		f.pack();
		f.setVisible(true);

	}

	public static void main(String[] args) {
		JTextAreaSelectionExample test = new JTextAreaSelectionExample();
		test.example();
	}

}

Vg Erdal
 
Zurück