Replace em uma jTextArea?

Olá pessoal do GUJ!

Eu estou tentando ‘adaptar’ esse código que simplesmente troca a ocorrência de um caractere (ou uma sequência de caracteres) por outro:

String frase = "textoOriginal escrito"; String frase2 = frase.replace("textoOriginal", "textoNovo");
O meu problema é que o código troca ocorrências apenas em Strings. Eu gostaria que ele trocasse as ocorrências que aparecessem dentro de uma jTextArea que eu possuo em minha janela.

OBS: não adianta salvar o valor da jTextArea em uma String pois a jTextArea possui várias linhas e se eu tento salvar seu valor em uma String ela só salva a 1ª linha

Existem alguma maneira de aplicar esse código acima em uma jTextArea em vez de uma String?

Muito Obrigado!

Tente setar o texto do JTextArea:

textArea.setText(textArea.getText().replace("textoOriginal", "textoNovo"));

Não entendi o que você quiz dizer com estar salvando apenas a primeira linha.

[quote=davidtiagoconceicao]Tente setar o texto do JTextArea:

textArea.setText(textArea.getText().replace("textoOriginal", "textoNovo"));

Não entendi o que você quiz dizer com estar salvando apenas a primeira linha.[/quote]

mais ou menos assim:

Se está escrito dentro da minha jTextArea isso:

[quote]Nesta semana está ocorrendo em Los Angeles o WinHEC, um evento da Microsoft destinado a desenvolvedores de hardware.

Uma das principais apresentações do evento foi realizada por Steven Sinofsky (responsável pelo desenvolvimento do Windows 7) e Jon DeVaan (vice-presidente da divisão do Windows Core). Durante a palestra, que durou pouco mais de uma hora, eles mostraram diversas comparações e testes de performance entre o Windows Vista e o Windows 7.[/quote]
e eu tentar atribuir o valor da jTextArea à uma String pelo comando:

nomeDaString = jTextArea1.getText();

Ele salva dentro da String ‘nomeDaString’ apenas isso:

Ou seja, as linhas que não estão ‘grudadas’ com a primeira (novos parágrafos) não são salvas.

Existe algum método para salvar tudo em uma Array? Pois daí eu poderia usar o método acima.

Estive fazendo alguns testes aqui e não consegui identificar uma situação em que o getText retorne apenas uma linha da textArea.
Criei a seguinte classe de testes:

package other;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;

public class TestJTextArea extends JFrame implements ActionListener {

	private JTextArea textArea;

	private JButton button;

	public TestJTextArea() {
		super("Teste");
		textArea = new JTextArea();
		button = new JButton("Substituir");
		add(new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
		add(button, BorderLayout.NORTH);
		button.addActionListener(this);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		setSize(300, 300);
		setVisible(true);
	}

	public static void main(String[] args) {
		new TestJTextArea();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println(textArea.getText());
		textArea.setText(textArea.getText().replace("a", "b"));
	}
}

Executei e colei o trecho de texto que você postou:

Ao clicar no botão para substituir, o texto ficou assim:

Ou seja, aparentemente a substituição ocorreu sem problemas.
Inclusive na saída padrão o textou saiu correto:

Rode esse exemplo aí e veja o que acontece. Acho que você está com algum problema em outro trecho do código…