Zeilennummer anzeigen

Status
Nicht offen für weitere Antworten.
M

Michael167

Gast
Hallo,

ich habe eine jTextPane und möchte daneben in einer JTextArea immer die aktuelle Zeilennummern stehen haben

Code:
StringBuffer lines = new StringBuffer();

	public JComponent createZeilennummern(){
		
		JScrollPane jScrollPane = new JScrollPane();
		JTextPane jCurrentTextPane = new JTextPane();
			
		JPanel numbersAndText = new JPanel();
	        JTextArea lineNumbers = new JTextArea();
		
                getLineNumbers();
		numbersAndText.add(jCurrentTextPane);
		numbersAndText.add(lineNumbers);
		    
		jScrollPane.setRowHeaderView(lineNumbers);
		jScrollPane.setViewportView(jCurrentTextPane);
	        

		return jScrollPane;
	}

       public StringBuffer getlineNumbers(){
	    lines.append(1 + "  \n");
	    lines.append(2 + "  \n");
	    
	    return lines;
	}


jetzt ist mein problem, dass ich nicht weiß wie ich immer die aktuelle Zeilennummer bekomme (wenn man text in JTextPane schreibt) und dann gleich in der JTextArea anzeige

vll kann mir jemand helfen

Danke,
Michael[/code]
 

The_S

Top Contributor
Hier mal eine 1zu1 Kopie aus einem Projekt von mir. Dieses JPanel macht genau soetwas was du möchtest, musst es nur noch nach deinen wünschen modifizieren ;) . Den BFMarker kannst du komplett weglassen und anstelle vom CCPTextArea kannst du auch ein normales JTextArea verwenden.

Code:
public class BFEditor extends JPanel {

	private static final long serialVersionUID = 1L;
	
	private JPanel master = null;
	private JPanel left = null;
	
	private CCPTextArea editor = null;
	private JTextArea lines = null;
	
	private JScrollPane scroll1 = null;
	private JScrollPane scroll2 = null;
	
	private BFMarker marker = null;
	
	private Font font = null;
	
	public BFEditor() {
		
		master = new JPanel();
		left = new JPanel();
		editor = new CCPTextArea();
		lines = new JTextArea("1");
		
		marker = new BFMarker();
		
		scroll1 = new JScrollPane(editor, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		scroll2 = new JScrollPane(left, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		
		font = new Font("monospaced", Font.PLAIN, 12);
		
		lines.setEditable(false);
		lines.setFont(font);
		editor.setFont(font);
		marker.setLineHeight(editor.getFontMetrics(editor.getFont()).getHeight());

		editor.getDocument().addDocumentListener(new DocumentListener() {

			public void changedUpdate(DocumentEvent arg0) {
				updateLines();
			}

			public void insertUpdate(DocumentEvent arg0) {
				updateLines();
			}

			public void removeUpdate(DocumentEvent arg0) {
				updateLines();
			}
		});
		
		scroll1.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {

			public void adjustmentValueChanged(AdjustmentEvent evt) {
				scroll2.getVerticalScrollBar().setValue(scroll1.getVerticalScrollBar().getValue());
			}
		});
		
		setLayout(new BorderLayout());
		master.setLayout(new BorderLayout());
		left.setLayout(new BorderLayout());
		
		master.add(scroll2, BorderLayout.WEST);
		master.add(scroll1);
		
		left.add(marker, BorderLayout.WEST);
		left.add(lines);
		
		add(master);
		
		updateLines();
	}
	
	public void setEditable(boolean editable) {
		editor.setEditable(editable);
	}
	
	public void setPos(int pos) {
		editor.setSelectionStart(pos);
		editor.setSelectionEnd(pos + 1);
		editor.requestFocusInWindow();
	}
	
	public void setText(String text) {
		editor.setText(text);
	}
	
	public String getText() {
		return editor.getText();
	}
	
	public ArrayList<BreakPoint> getBreakPoints() {
		return marker.getPoints();
	}
	
	private void updateLines() {
		
		StringBuilder build = new StringBuilder();
		String text = editor.getText();
		int lines = 0;
		for (int i = 0, j = 1; i != -1; j++) {
			lines++;
			i = text.indexOf("\n", i);
			build.append(j + "\n");
			if (i != -1) {
				i++;
			}
		}
		if (build.length() != this.lines.getText().length()) {
			marker.setLines(lines);
			marker.repaint();
			this.lines.setText(build.toString());
			scroll2.setPreferredSize(new Dimension(this.lines.getFontMetrics(font).stringWidth(lines + " ") + 15, 0));
			SwingUtilities.invokeLater(new Runnable() {
				public void run() {
					scroll2.getVerticalScrollBar().setValue(scroll1.getVerticalScrollBar().getValue());
					validate();
				}
			});
		}
	}
}
 
M

Michael167

Gast
Danke für deine Hilfe, ich habe leider noch Probleme mit dem DocumentListener

habe jetzt mal:
Code:
public class BFEditor extends JFrame implements DocumentListener{

...aber das funktioniert irgendwie nicht, vielleicht kannst du mir noch einmal helfen



lg
Michael
 

The_S

Top Contributor
Den DocumentListener musst du doch nicht noch extra implementieren, wird doch schon als anonyme, innere Instanz angelegt.
 
M

Michael167

Gast
Code:
editor.getDocument().addDocumentListener(new DocumentListener() {


ich bekomme jedoch hier eine Fehlermeldung:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
DocumentListener cannot be resolved to a type
 

The_S

Top Contributor
Dann musst du den DocumentListener noch importieren (so wie alle anderen Klassen auch, die nicht in java.lang sind) ...
 
M

Michael167

Gast
danke, ich hatte nur awt event importiert

import java.awt.event.*;
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JTextArea: Zeilennummer ermitteln AWT, Swing, JavaFX & SWT 4
H JavaFX Desktop-Icon anzeigen AWT, Swing, JavaFX & SWT 27
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
W Kleine Sub-Tabelle in SpreadsheetView-Zelle anzeigen AWT, Swing, JavaFX & SWT 9
G Java GUI Dropdown-Menü anzeigen AWT, Swing, JavaFX & SWT 5
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
J BufferedImages nacheinander als Video anzeigen AWT, Swing, JavaFX & SWT 14
BananenBrötchen Swing Arraylist in jList anzeigen AWT, Swing, JavaFX & SWT 6
Lukas2904 Swing ID von WLAN Kamera anzeigen lassen. AWT, Swing, JavaFX & SWT 2
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
G AWT AWT Kreise permanent anzeigen AWT, Swing, JavaFX & SWT 3
MiMa File Dateien im ListView als Name anzeigen? AWT, Swing, JavaFX & SWT 6
C Swing In der Titelleiste den Namen und den vollständigen Pfad bzw URL des aktuellen Dokuments anzeigen AWT, Swing, JavaFX & SWT 25
C Swing Aufruf der Funktion (die ein Dialog anzeigt) über Symbol anzeigen lassen AWT, Swing, JavaFX & SWT 4
O Timer in JOptionPane anzeigen AWT, Swing, JavaFX & SWT 2
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
C JavaFX Veränderungen in Scenebuilder in Eclipse als Quellcode anzeigen lassen AWT, Swing, JavaFX & SWT 11
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
J Warum kann ich die Spaltennummer in der Konsole anzeigen, diese aber nicht speichern ? AWT, Swing, JavaFX & SWT 6
VPChief Icons in 2 Jlabels Director nebeneinander anzeigen AWT, Swing, JavaFX & SWT 26
E Auf JPanel malen und davor JComponenten anzeigen AWT, Swing, JavaFX & SWT 12
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
R JavaFX Label oder Imageview anzeigen mit Buttonklick AWT, Swing, JavaFX & SWT 4
B ArrayList, Strings anzeigen AWT, Swing, JavaFX & SWT 1
P Abwächselnd ein Punkt und ein x anzeigen AWT, Swing, JavaFX & SWT 2
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
T Swing Buffered Image anzeigen AWT, Swing, JavaFX & SWT 45
E Aktuelle Uhrzeit auf jeder Stage anzeigen lassen (JavaFX) AWT, Swing, JavaFX & SWT 2
F JavaFX Aktuelle Zeit in einem TextField anzeigen AWT, Swing, JavaFX & SWT 7
CptK Swing DropdownMenu über Panel-Grenzen hinaus anzeigen AWT, Swing, JavaFX & SWT 1
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
F Countdown in Label anzeigen AWT, Swing, JavaFX & SWT 14
M Loading Screen anzeigen bei Black Screen AWT, Swing, JavaFX & SWT 1
J CheckComboBox : Ausgewählte Items NICHT im Header anzeigen AWT, Swing, JavaFX & SWT 4
ralfb1105 Swing Dynamischer Graph zum anzeigen Perfomance Daten AWT, Swing, JavaFX & SWT 35
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
K Event Handling Über JMenuBar die diversen Panels anzeigen AWT, Swing, JavaFX & SWT 10
G JComboBox: Arrow-Button permanent anzeigen AWT, Swing, JavaFX & SWT 4
L JavaFX Animation, erst zeichnen dann anzeigen AWT, Swing, JavaFX & SWT 4
J CheckComboBox selected Items nicht anzeigen AWT, Swing, JavaFX & SWT 6
L Suchergebnisse variabel mit Button anzeigen lassen AWT, Swing, JavaFX & SWT 3
M JavaFX Ein Labeltext eine zeitlang anzeigen dann weiter machen AWT, Swing, JavaFX & SWT 3
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
D MySQL-Tabellen in GUI anzeigen AWT, Swing, JavaFX & SWT 8
Meeresgott AWT JFileChooser bestimmte Ordner anzeigen AWT, Swing, JavaFX & SWT 16
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
M PDF einlesen und innerhalb Pane anzeigen AWT, Swing, JavaFX & SWT 5
S Zwei JTree, ein Model, bei Selection im ersten JTree soll der zweite die Inhlate anzeigen AWT, Swing, JavaFX & SWT 2
M JavaFX StackedBarChart y-Axis soll nur Integerwerte anzeigen AWT, Swing, JavaFX & SWT 1
MiMa PDF in Java FX anzeigen AWT, Swing, JavaFX & SWT 21
T JLabel Textinhalt von Oben anzeigen AWT, Swing, JavaFX & SWT 1
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
C Benutzername in GUI eingeben und nach Spiel neues Fenster Benutzername wieder anzeigen AWT, Swing, JavaFX & SWT 1
M Gui-Form alle Labels anzeigen AWT, Swing, JavaFX & SWT 4
J Swing Zeichenfläche im JPanel des Haupfenster anzeigen lassen AWT, Swing, JavaFX & SWT 4
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
beatles Swing JTextField - Game Status aus Array anzeigen AWT, Swing, JavaFX & SWT 3
M Java FX Immer aktuelle Mausposition anzeigen AWT, Swing, JavaFX & SWT 6
J Eigene Klasse auf Basis Textfield in SceneBuilder anzeigen AWT, Swing, JavaFX & SWT 4
L wie Layout-Grid in JXPanel anzeigen? AWT, Swing, JavaFX & SWT 5
G JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
F JavaFX JavaFX HTMLEditor-Eingabe in Textarea als HTML anzeigen AWT, Swing, JavaFX & SWT 2
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
D Swing Idealgewicht anzeigen per Radiobuttonaktivierung AWT, Swing, JavaFX & SWT 8
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
B Swing JXMapKit Mausemove in Label anzeigen AWT, Swing, JavaFX & SWT 0
J JavaFX TextArea dynamisch Icon im Background anzeigen AWT, Swing, JavaFX & SWT 2
D Swing Erstes Item einer JCombobox in JTable anzeigen AWT, Swing, JavaFX & SWT 2
V Wie kann ich die Schrift in Java vollkommen anzeigen AWT, Swing, JavaFX & SWT 1
F Menüs in allen Fenstern anzeigen AWT, Swing, JavaFX & SWT 12
J 2D-Grafik Windows Blue-Screen nach anzeigen eines Bildes in Java AWT, Swing, JavaFX & SWT 10
S (Swing)Vollbild anzeigen unter Linux/Mac AWT, Swing, JavaFX & SWT 6
I Swing JLabel Bild für 1sec anzeigen lassen AWT, Swing, JavaFX & SWT 13
M Image aus MS Access anzeigen lassen AWT, Swing, JavaFX & SWT 9
B Swing Dateien im Swing-GUI anzeigen AWT, Swing, JavaFX & SWT 3
llabusch Titelleiste Dokumentenname und Pfad/URL anzeigen AWT, Swing, JavaFX & SWT 2
S Bestimmten Bereich eines Bildes im JFrame mit Scrollpane anzeigen AWT, Swing, JavaFX & SWT 0
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
I Zwei Fenster nebeneinander anzeigen AWT, Swing, JavaFX & SWT 2
A LayoutManager Statusleiste auch nach Verkleinerung des Fensters anzeigen AWT, Swing, JavaFX & SWT 1
B Swing Bild von Webseite herunterladen, diese dann in JList anzeigen. AWT, Swing, JavaFX & SWT 1
M Nodes in JTree nicht anzeigen AWT, Swing, JavaFX & SWT 0
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
N Swing Alle Objekte anzeigen auch bei JPanel-Überlappung AWT, Swing, JavaFX & SWT 6
K Swing Aktuelle Uhrzeit anzeigen AWT, Swing, JavaFX & SWT 3
U Bild innerhalb hatml code anzeigen AWT, Swing, JavaFX & SWT 5
N JPanel größe wissen/festlegen vor dem Anzeigen AWT, Swing, JavaFX & SWT 3
N Input/Output Stream werte in Label anzeigen. AWT, Swing, JavaFX & SWT 6
T Tetris - nächste Form anzeigen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben