JTextArea - einzelnen Zeilen aufrufen :?

ellion

Erfahrenes Mitglied
Huhu ihr lieben,
wahrscheinlich eine doofe Frage, aber wie kann ich die einzelnen Zeilen einer textArea auslesen?



danke schonmal im vorraus
 

TiSch

Grünschnabel
Hallo,
Die Frage ist in Swing gar nicht so doof, wahrscheinlich der Grund weshalb Du keine Antwort bekommst.
Hab Dir mal ein Beispiel-Progrämmchen geschrieben, was funktionieren sollte:
Code:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.text.BadLocationException;

public class LineCounter extends JFrame
{
	public static void main(String[]args){new LineCounter();}
	
	LineCounter()
	{
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		initAll();
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}
	
	private void initAll()
	{
		final JTextArea text = new JTextArea(10,10);
		text.setLineWrap(true);
		final JTextField input = new JTextField(10);
		input.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				try
				{
					int line = Integer.parseInt(input.getText());
					int startOfLine = text.getLineStartOffset(line);
					int endOfLine = text.getLineEndOffset(line);
					String lineText = text.getText(text.getLineStartOffset(line),endOfLine-startOfLine);
					text.append("Text in Zeile "+line+": "+lineText);
				}catch (BadLocationException e1){e1.printStackTrace();}
			}
		});
		getContentPane().add(new JScrollPane(text));
		getContentPane().add(input, BorderLayout.SOUTH);
	}
}
Der interessante Teil steht in der actionPerformed.
Einfach mal irgendwas in die TextArea eingeben , Zeilen mit <Enter> abschliessen und in das TextField die Zeile eingeben, die Du angezeigt haben willst.
Grüsse,
Tim
 

ellion

Erfahrenes Mitglied
ah danke :D hab mittlerweile schon rausgefunden, dass ich die TextArea als String behandeln kann. Ich hab's bisher mit charAt und dann nach \r\n gemacht, aber deine Möglichkeit ist um einiges einfacher, danke! :)
 

Neue Beiträge