TextArea mit Zeilennumerierung

munuel

Mitglied
Hallo,
ich möchte eine Zeilennummerierung in einem TextArea realisieren,
die Nummerierung ist natürlich vortlaufend uns soll am Anfang jeder Zeile stehen.
Die Nummern dürfen nicht editierbar sein!
Danach soll sich der editierbare Text anschliessen.
Es wäre auch denkbar, wenn die Nummerierung gar nicht in dem TextArea vorgenommen werden müsste sondern irgendwie davor, so dass der Bereich in dem TextArea gar nicht davon betroffen ist.
Vielleicht kenn einer einen link zu einem ähnlichen Beispiel.
Oder hat eine Idee!

Viele Grüsse munuel
 
Hallo Manuel,

hier mal ein Amateuerversuch!

Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;

public class JTextAreawLNs extends JFrame implements DocumentListener{
	
	JTextArea textArea = new JTextArea();
	JTextArea lineBar = new JTextArea(" 0 ");
	JPanel panel = new JPanel();
	JScrollPane scroll = new JScrollPane(panel);
	
	public JTextAreawLNs() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationByPlatform(true);
		setAlwaysOnTop(true);
		setSize(200,300);
		
		panel.setLayout(new BorderLayout());
		panel.add(textArea,BorderLayout.CENTER);
		panel.add(lineBar,BorderLayout.WEST);
		
		lineBar.setBackground(Color.LIGHT_GRAY);
		lineBar.setForeground(Color.BLUE);
		lineBar.setBorder(BorderFactory.createEtchedBorder());
		lineBar.setEditable(false);
		
		textArea.getDocument().addDocumentListener(this);
		
		add(scroll);
		setVisible(true);
		
		textArea.requestFocus();
	}

	public static void main(String[] args) {
		JTextAreawLNs textareawithlinenumbers = new JTextAreawLNs();
	}

	public void insertUpdate(DocumentEvent e) {
		changedUpdate(e);
	}

	public void removeUpdate(DocumentEvent e) {
		changedUpdate(e);
	}

	public void changedUpdate(DocumentEvent e) {
		int line = textArea.getLineCount();
		String numbers = "";
		for (int i = 0; i < line; i++)
			numbers = numbers + " " + i + " \n";
		lineBar.setText(numbers);
	}
}

Vg Erdal
 
Dank auch dir Chris,

für die Idee, die Inspiration. Ich werde eventuell die Zeilennummerierung auch in meinen Editor einbauen.


Vg Erdal
 
Zurück