Swing Darstellung einer Zeilenbar

Eisblume

Mitglied
Hallo

Ich habe mich an einem kleinen Editor versucht. Bisher klappt alles 1a und es sind schon einige Features eingebaut. Nun komme ich aber vor eine Herausforderung:

Ich habe eine Textfeld, wo man den Text editieren kann, dafür verwende ich eine JTexArea mit einer ScrollBar (horizontal und vertikal). Zeilenumbrüche werden mit einem \n dargestellt, welche man ja aber nicht sieht. Ich möchte nun, dass wenn ich eine Datei öffne, links von der JTextArea in einem neuen Element in jeder Zeile die Zeilennummer dargestellt wird. Ich dachte zuerst daran, eine neue JTextArea zu erstellen, mit einer for Schleife die Zeilen reinzuschreiben und dahinter ein Zeilenumbruch reinzutun, es ergeben sich dann aber diese Probleme:

1.) Wenn der Benutzer in die JTextArea vom Editor schreibt, wird die Zeilenangabe nicht aktualisiert. Ich müsste diese also manuel updaten und ich dachte mir, hey da kann Swing sicher was bieten
2.) Damit man das Ganze auch komplett sehen kann, wenn man zB im Editor scrollt, müsste die Zeilenangabe mitscrollen - das wird recht schwierig und komplex.

Nun, zurück zur Frage, gibt es in Swing eine Funktion/Klasse, mit welcher man sowas leicht(er) bewerkstelligen kann ? Ich denke an eine Zeilenbar, wie es zB Notepad++ bietet.

Ich hoffe, ich konnte mich etwas verständlich ausdrücken,
MfG Simon
 
hast du sowas gesucht?

Zeilennummerierung bei JTextArea

weiterhin könntest du die automatische Aktualisierung evtl. mit einem KeyListener durchführen, der dann bei einem "Enter" eine neue Zeilennummer hinzufügt (falls es dafür keine richtige Funktion gibt 🙂)
 
Zuletzt bearbeitet:
Hallo

@pl4gu33

Ja, genau sowas habe ich gesucht, mein Fehler war glaube ich, dass ich immer nach "rowbar" gesucht habe. Sein Beispielcode ist genau das, was ich suche. Wenn man mehr Zeilen hat, als auf dem JTextArea vom Editor darstellbar, scrollt die Zeilennummerierung automatisch mit- perfekt. Ich ändere es einfach ab, da er kein vertikales Scrollen erlaubt, aber das stellt kein Problem dar.

Ich danke euch vielmals, auch den beiden anderen Postern, werde mir eure Vorschläge auch mal anschauen 😉

Erledigt
 
Hallo

Als kleiner Hinweis:

@ Zeilennummerierung bei JTextArea
Der Code hier hat eine gröbere "Schwachstelle". Er hat um Zeile 23/24 Probleme, da dort die JTextArea fertig ist, ab Zeile 25 und höher sollte es dann wieder klappen.


@ www.discoverteenergy.com/files/LineNumber.java (Zu empfehlen)
Ich habe den Beispielcode hier genommen und verändert, und es geht alles 1a. einziger Nachteil ist, dass man bei 10 Zeilen die Zeilennummerierung von höheren Zeilen sieht, aber das stört mich soweit nicht 😉

MfG Simon
 

Neue Themen


Zurück
Oben