JTextArea + Zeilennummerierung

Status
Nicht offen für weitere Antworten.

Creativ

Aktives Mitglied
Hi,
Ich habe mal wieder ein Problem, und zwar versuche ich mich derzeit an einen kleinen Texteditor.

Die Standard-Funktionen wie öffnen,speichern, rückgängig, wieder holen usw. usf. funktionieren inzwischen.

Jetzt wollte ich aber noch machen, dass die Zeilennummer angezeigt wird.
Wie ich jetzt die Anzahl der Zeile rauskriege, habe ich inzwischen schon rausgefunden. Mein Problem ist aber wie ich das jetzt am besten anzeige.

Derzeit habe ich für den Editor eine JTextArea in einem JScrollPane.
Ich hatte schon versucht, daneben noch eine JTextArea mit JScrollPane zu packen und da die Zeilenanzahl reinzupacken.
Aber wenn ich jetzt in der eigentlichen Editor-JTextArea scrolle, bleibt ja die JTextArea mit den Zeilen einfach stehen und dadurch stimmt die Anzeige ja nicht mehr.

Wie würdet ihr das am Besten lösen?
Am schönsten wäre es mMn, wenn man bei der JTextArea links eine Fläche einfügen kann, die nicht editiert werden kann und wo dann die Zeilen angezeigt werden, aber ich weiß nicht wie man sowas machen könnte.

Ich hoffe ihr versteht was ich meine. 😀

Gruß,
Dennis
 
Hm - sowas hab' ich schonmal in ähnlicher Form gebastelt - da hab ich einfach eine Klasse von JPanel abgeleitet, die ein BorderLayout hatte, und ins CENTER die JTextArea gelegt, und ins WEST dann ein JPanel, dass JLabels mit den Zeilennummern enthielt. Das ganze dann am Ende in eine ScrollPane packen. Es gibt aber vielleicht auch elegantere Ansätze ???:L
 
Hi,
Danke erstmal :toll:
Habe das jetzt erstmal so gemacht:
Ich habe ein JPanel mit BoxLayout gemacht, und das nach X_AXIS geordnet.

Dann habe ich dem JPanel das JLabel mit den Zeilennummern und den editor hinzugefügt und das JPanel in ein JScrollPane gepackt.

Jetzt habe ich aber noch ein Problem, und zwar ist der Text in dem JLabel immer in der Mitte (also vertical-align:middle; 😀 )
Wie kriege ich den Text jetzt nach oben? Gibts bei Java auch irgendwas wie vertical-align:top; ?

Gruß,
Dennis
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben