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?
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…